我不能让Armadillo 4.3在Windows上工作。包含了库armadillo/include,然后我运行g++ "-LC:\\Armadillo\\BLAS_Lapack" -o1 -o test.exe test.o -llapack -lblas,然后我得到以下错误消息:
C:/Armadillo/include/armadillo_bits/blas_wrapper.hpp:183: undefined reference to `wrapper_ddot_'
test.o: In function `ZN4arma4blas4gemvIdEEvPKcPKiS5_PKT_S8_S5_S8_S5_S8_PS6_S5_':
C:/Armadillo/include/armadillo_bits/blas_wrapper.hpp:34: undefined reference to `wrapper_dgemv_'
test.o: In function `ZN4arma4blas4gemmIdEEvPKcS3_PKiS5_S5_PKT_S8_S5_S8_S5_S8_PS6_S5_':
C:/Armadillo/include/armadillo_bits/blas_wrapper.hpp:69: undefined reference to `wrapper_dgemm_'如果我运行g++ -o1 -o test.exe test.o -llapack -lblas,我会得到
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -llapack
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -lblas我根据自述文件取消了对配置文件config.hpp的注释。
有人知道怎么让Armadillo工作吗?(我使用的是Eclipse CDT。)
发布于 2014-07-04 21:21:44
现在它似乎起作用了!我正在使用自述文件中指示的网页中的Lapack和BLAS,该自述文件是我根据@enhzflep注释编译的。
要在Eclipse CDT中正确链接所有内容,请右键单击项目并转到属性,然后:
g++ -I"C:\Armadillo\include" (替换为Armadillo文件夹的正确路径)。请确保对所有配置执行此操作(将在顶部的下拉菜单中选择)。在"C/C++ Build⟼Settings⟼MinGW C++ Linker⟼Libraries“下,将lapack和blas添加到Armadillo文件夹C:\Armadillo\include.的include目录中”add lapackblas to Libraries.
它可能与原始的Lapack和BLAS文件一起工作。它对我不起作用,因为我只在"C/C++ General⟼path⟼Symbols⟼GNU C++“下添加了Armadillo的路径,我猜它只告诉编辑器需要什么数据类型和函数,而不是编译器。
发布于 2014-11-02 02:41:43
它花了一段时间才弄对,但一旦它起作用,它似乎是透明的。我会一步一步地解释。(确保已按照config.hpp文件的自述文件中的说明取消了对正确行的注释)
blas/lapack编译的通用命令(使用armadillo (当前版本4.500.0)提供的默认命令,并使其速度更快:)
g++ main.cpp -I C:{ARMADILLO_ROOT}\include -L C:{ARMADILLO_ROOT}\examples\lib_win64 -lblas_win64_MT -llapack_win64_MT
其中每个命令如下所示:
遵循此逻辑,您可以使用以下配置eclipse (使用eclipse露娜R1 4.4.1 -should在其他版本上的过程相同):
click on >右键单击该项目,然后在左侧菜单上的弹出式菜单中选择"C/C++ Build“(C/ C++生成)下的”
之前,单击"Libraries“add a "Library search path (-L)”并单击"Apply“按钮应用相同的"MinGW C++ Linker”。
--截图1

--截图2

发布于 2014-07-04 10:29:46
如果你在Windows上使用MinGW,一个好的选择是在Armadillo上使用OpenBLAS。OpenBLAS提供了BLAS和LAPACK的优化和多线程实现:http://xianyi.github.io/OpenBLAS/
OpenBLAS项目为Windows提供了预编译版本。源代码还可以在Linux和MacOS X下轻松编译。
请注意,Armadillo不支持Windows下的自动安装。基于cmake的安装程序提供了一条很大的警告消息--建议您注意它。
执行以下操作(如Armadillo随附的README.txt文件中所述),而不是自动安装:
include/armadillo_bits/config.hpp以启用BLAS和LAPACK。换句话说,在include/armadillo_bits/config.hpp中确保ARMA_USE_BLAS和ARMA_USE_LAPACK是未注释的include/armadillo_bits/config.hpp,禁用ARMA_USE_WRAPPER,即。确保它被注释掉了。include文件夹,并链接到openblas。例如,对于gcc,使用-I开关指定包含文件夹。https://stackoverflow.com/questions/24549196
复制相似问题