犰狳 lapack 和 blas 未定义的参考

Posted

技术标签:

【中文标题】犰狳 lapack 和 blas 未定义的参考【英文标题】:Armadillo lapack and blas undefined refences 【发布时间】:2014-08-21 17:47:37 【问题描述】:

我正在努力使用 blas 和 lapack 库构建一个犰狳示例。

这是我的构建日志:

19:34:02 **** Rebuild of configuration Debug for project Amatest2 ****
Info: Internal Builder is used for build
g++ "-IC:\\temp\\armadillo-4.400.1MT\\include" -O3 -g3 -Wall -c -fmessage-length=0 -o example1.o "..\\example1.cpp" 
g++ "-LC:\\temp\\armadillo-4.400.1MT\\examples\\lib_win64" -o Amatest2.exe example1.o  -llapack_win64_MT -lblas_win64_MT 
example1.o: In function `dot<double>':
C:/temp/armadillo-4.400.1MT/include/armadillo_bits/blas_wrapper.hpp:183: undefined reference to `ddot_'

这是我的 config.hpp 的一部分:

#if !defined(ARMA_USE_LAPACK)
 #define ARMA_USE_LAPACK
#endif
#if !defined(ARMA_USE_BLAS)
 #define ARMA_USE_BLAS
#endif
#if !defined(ARMA_USE_ARPACK)
// #define ARMA_USE_ARPACK
#endif
// #define ARMA_USE_WRAPPER
// #define ARMA_BLAS_CAPITALS
#define ARMA_BLAS_UNDERSCORE

我正在使用日食。我已经按照自述文件进行了操作,但仍然没有运气。 有人可以在隧道尽头提供一盏灯吗?

最好的问候, 乔治

【问题讨论】:

【参考方案1】:

您在 Windows 下使用 g++,我怀疑它来自 MinGW 项目。 Armadillo 附带的预编译 BLAS 和 LAPACK 库旨在与 MSVC“编译器”链接。 MinGW 可能不喜欢这些。我建议您尝试使用 MinGW 的 gcc/gfortran 编译的 BLAS 和 LAPACK 库。试试这个网站:http://icl.cs.utk.edu/lapack-for-windows/lapack/

【讨论】:

以上是关于犰狳 lapack 和 blas 未定义的参考的主要内容,如果未能解决你的问题,请参考以下文章

将具有外部依赖项的共享库集成到 MATLAB |即犰狳、LAPACK、BLAS

将 armadillo/blas/lapack 与 cmake 链接(未定义对 `dgemv_' 的引用)

Armadillo C++ 和 BLAS 和 ATLAS 在 mingw32 下找不到 lapack blas

如何将 lapack 和 BLAS 库链接到 C++ 代码

ndk-build 使用 amadillo (blas lapack) 和 vlfeat lib

Windows Scipy 安装:未找到 Lapack/Blas 资源