Armadillo Wrapper Linker错误

时间:2014-04-11 11:27:06

标签: armadillo

在使用Armadillo代数包中的某些函数时,我会收到以下错误:

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

我遵循了这里的说明,一切都很顺利:

Cross-Compiling Armadillo Linear Algebra Library

任何想法?

1 个答案:

答案 0 :(得分:0)

我花了几天时间才能为我的Android开发安装armadillo。所以我想与您分享解决问题的经验。

对`clapack_dgetrf'的错误未定义引用是链接错误。此函数应包含在其中一个库-llapack -lf2c -lblas中。当然它是clapack,所以它应该在lapack库中。使用命令nm来检查lapack库(liblapack.a或liblapack.so)是否包含此符号。我相信你会找到解决方案。希望它有所帮助。