Ошибки Armadillo Wrapper Linker

При использовании некоторых функций в пакете алгебры Армадилло я получаю следующие ошибки:

armadillo_bits/atlas_wrapper.hpp:188: undefined reference to `clapack_dgetrf'

Я связал, как это:

arm-linux-gnueabihf-g++  -march=armv7-a     -mthumb-interwork -mfloat-abi=hard  
-mfpu=neon    
-mtune=cortex-a9 --sysroot=/home/mg/yocto/build/tmp/sysroots/socfpga_cyclone5  
-DHAVE_CONFIG_H -I. -I..   --sysroot=/home/mg/yocto/build/tmp/sysroots 
/socfpga_cyclone5  -g -O2 -L/opt/altera-linux/linaro/gcc-linaro-arm-linux-gnueabihf- 
4.7-2012.11-20121123_linux/arm-linux-gnueabihf/lib -I/opt/altera-linux/linaro 
/gcc-linaro-arm-linux-gnueabihf-4.7-2012.11-20121123_linux/arm-linux-gnueabihf 
/include  -llapack -lf2c  -lblas -lm --sysroot=/home/mg/yocto/build/tmp/sysroots 
/socfpga_cyclone5 -MT AlgoLibTests.o -MD -MP -MF .deps/AlgoLibTests.Tpo -c -o  
AlgoLibTests.o AlgoLibTests.cpp

Я следовал инструкциям здесь, и все прошло хорошо:

Библиотека кросс-компиляции линейной алгебры Armadillo

Есть идеи?

1 ответ

Мне также понадобилось несколько дней, чтобы установить броненосец для разработки под Android. Поэтому я хочу поделиться с вами опытом решения вашей проблемы.

Ошибка неопределенной ссылки на `clapack_dgetrf 'является ошибкой компоновки. Эта функция должна содержаться в одной из этих библиотек -llapack -lf2c -lblas. Конечно, это клапак, поэтому он должен быть в библиотеке. Используйте команду nm, чтобы проверить, содержит ли библиотека lapack (liblapack.a или liblapack.so) этот символ. Я уверен, что вы найдете решение тогда. Надеюсь, поможет.

Другие вопросы по тегам