Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将犰狳与Eclipse联系起来_Eclipse_Linker_Armadillo - Fatal编程技术网

如何将犰狳与Eclipse联系起来

如何将犰狳与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文

我想在Eclipse中使用犰狳。然而,链接犰狳的所有说明都是为VisualStudio提供的。现在,我按照的自述文件中概述的说明进行操作。我在
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

    > GCC C++链接器>库:添加文件<代码> LBARMADILO的路径。因此……/CUT>在库搜索路径(选项-L)示例:<代码> /HOL/Alpha/Suff/ARMADILO-4.400 .1<代码>。将
    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/C++ +构建>设置> GCC C++编译器> 包含>包含路径(-l):
C:\armadillo-x.xxx.x\Include
  • 然后在环境变量>系统变量中,修改路径 变量并添加:
    C:\armadillo-x.xxx.x\examples\lib\u win64\
  • 项目属性>C/C++常规>路径和符号>库:
    blas_win64_MT
    lapack_win64_MT
    (添加它们很重要 这样,没有路径或.lib/.dll)

  • 然后在环境变量>系统变量中,修改路径 变量并添加:
    C:\armadillo-x.xxx.x\examples\lib\u win64\

  • Eclipse中的犰狳库很好用


    我使用了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)”。我很困惑。