我想在Eclipse中使用Armadillo。但是,为Visual Studio提供了链接Armadillo的所有说明。现在我按照Armadillo library的自述文件中列出的说明进行操作。我在project(right click)->properties->C/C++ Build->Settings->Cross G++ Compiler->Includes->Inlcude paths(-I)
中添加了Armadillo include文件夹,然后在project(right click)->properties->C/C++ Build->Settings->Cross G++ Linker->Libraries->Library search path (-L)
中添加了libraries文件夹(库文件夹包含lapack和blas .lib和.dll文件)。
然而,当我在Eclipse中编译代码时,我得到了错误
..... armadillo_bits / lapack_wrapper.hpp:37:对'dgetrf _'的未定义引用。
它不应该只是在库文件夹中搜索.lib文件并在编译期间包含它们吗?对于此事,我将不胜感激。
此致 TM
答案 0 :(得分:2)
将Armadillo库链接到Eclipse项目可以完成,您即将完成!它几乎和其他任何库一样。
在项目的属性中:
GCC C ++编译器 - >包括:将文件路径armadillo
(声明名称空间为arma
)添加到包含搜索路径(选项-I)。示例:/home/alpha/soft/armadillo-4.400.1/include
GCC C ++ Linker - >库:在库搜索路径中添加文件libarmadillo.so...
的路径(选项-L)示例:/home/alpha/soft/armadillo-4.400.1
。将armadillo
,lapack
,blas
和m
添加为库(选项-l)。 m
is for math
以下是eclipse生成的对编译器和链接器的调用:
make all
Building file: ../src/armaeclip.cpp
Invoking: GCC C++ Compiler
g++ -I/home/alpha/soft/armadillo-4.100.1/include -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/armaeclip.d" -MT"src/armaeclip.d" -o "src/armaeclip.o" "../src/armaeclip.cpp"
Finished building: ../src/armaeclip.cpp
Building target: armaeclip
Invoking: GCC C++ Linker
g++ -L/home/alpha/soft/armadillo-4.100.1 -o "armaeclip" ./src/armaeclip.o -larmadillo -lblas -lm -llapack
Finished building target: armaeclip
**** Build Finished ****
在运行代码时,您可能会得到类似的内容:
错误:det():需要启用ATLAS或LAPACK 在抛出'std :: logic_error'的实例后终止调用 what():det():需要启用ATLAS或LAPACK的使用 放弃(核心倾销)
要避免此问题,请按照文件#define ARMA_USE_LAPACK
中faq of Armadillo:取消注释/home/alpha/soft/armadillo-4.100.1/include/config.hpp
的建议,重建项目。
答案 1 :(得分:0)
您还可以创建GNU Autotools
项目并添加以下行:
bin_PROGRAMS=armadillo_example
armadillo_example_SOURCES=armadillo_example.cpp
armadillo_example_LDADD=-larmadillo
到存在源代码的Makefile.am
文件。
答案 2 :(得分:0)
如果您不需要优化的BLAS库,则可以使用Armadillo随附的BLAS和LAPACK库。
C:\armadillo-x.xxx.x\include
C:\armadillo-x.xxx.x\examples\lib_win64\
项目属性> C / C ++常规>路径和符号>库:
blas_win64_MT
和lapack_win64_MT
(添加它们很重要
这样,没有路径或.lib / .dll)
然后在“环境变量”>“系统变量”中,修改路径
变量并添加:C:\armadillo-x.xxx.x\examples\lib_win64\
使用Eclipse中的Armadillo库很不错。
我已经使用了Eclipse 4.14.0和Armadillo 9.850.1。