如何将犰狳与Eclipse联系起来
我想在Eclipse中使用犰狳。然而,链接犰狳的所有说明都是为VisualStudio提供的。现在,我按照的自述文件中概述的说明进行操作。我在如何将犰狳与Eclipse联系起来,eclipse,linker,armadillo,Eclipse,Linker,Armadillo,我想在Eclipse中使用犰狳。然而,链接犰狳的所有说明都是为VisualStudio提供的。现在,我按照的自述文件中概述的说明进行操作。我在project(右键单击)->properties->C/C++Build->Settings->Cross G++Compiler->Includes->Inlcude path(-I)中添加了Armadillo include文件夹,然后在project(右键单击)中添加了libraries文件夹(库文件夹包含lapack和blas.lib和.dll文
project(右键单击)->properties->C/C++Build->Settings->Cross G++Compiler->Includes->Inlcude path(-I)
中添加了Armadillo include文件夹,然后在project(右键单击)中添加了libraries文件夹(库文件夹包含lapack和blas.lib和.dll文件)->属性->C/C++构建->设置->交叉G++链接器->库->库搜索路径(-L)
然而,当我在Eclipse中编译代码时,我得到了错误
..…犰狳比特/lapack包装器。hpp:37:未定义对“dgetrf”的引用
它不应该简单地搜索库文件夹中的.lib文件并在编译过程中包含它们吗?我将非常感谢您对这件事的帮助
问候,,
TM将Armadillo库链接到Eclipse项目是可以完成的,而您正准备这么做!这和其他图书馆的情况差不多 在项目的属性中:
-
<> > GCC C++编译器>包括:将文件添加到文件<代码> ARMADILO (其中命名空间<代码> ARMA<代码> >被声明为包含搜索路径(选项-i)。示例:
/home/alpha/soft/armadillo-4.400.1/include
armadillo
、lapack
、blas
和m
添加为库(选项-l)
以下是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”实例后调用terminate
what():det():需要启用ATLAS或LAPACK的使用
废弃(堆芯倾倒)
为避免此问题,请遵循以下建议:在文件
/home/alpha/soft/armadillo-4.100.1/include/config.hpp
中取消注释\define ARMA\u USE\u LAPACK
,然后重建项目。您还可以创建GNU自动工具
项目并添加以下行:
bin_PROGRAMS=armadillo_example
armadillo_example_SOURCES=armadillo_example.cpp
armadillo_example_LDADD=-larmadillo
到源代码所在的
Makefile.am
文件。如果不需要优化的BLAS库,可以使用Armadillo附带的BLAS和LAPACK库
C:\armadillo-x.xxx.x\Include
C:\armadillo-x.xxx.x\examples\lib\u win64\
blas_win64_MT
和lapack_win64_MT
(添加它们很重要
这样,没有路径或.lib/.dll)C:\armadillo-x.xxx.x\examples\lib\u win64\
我使用了Eclipse 4.14.0和Armadillo 9.850.1。嗨,弗朗西斯,谢谢你的建议。但是我没有。所以拉帕克,布拉斯,m或犰狳的档案。我仅有的库文件的格式是lapack_WIN64_MT.lib和blas_WIN64_MT.lib。当我链接Armadillo文件夹并将lapack和blas添加为库时,我得到错误“找不到lapack和blas”,因此我假设我丢失了。那么文件在哪里可以找到呢?你能尝试将
lapack\u WIN64\u MT
和blas\u WIN64\u MT
添加为库,而不是lapack
和blas
?根据,它可能会解决你的问题。我试过了,但它读不到lapack\u WIN64\u MT,也找不到blas\u WIN64\u MT。我有点放弃使用特征线性代数Library@francis它仍然工作完美!非常感谢。您应该添加“仅在库中添加文本“犰狳”、“拉帕克”、“blas”和“m”(选项-l)”。我很困惑。