【发布时间】:2013-08-15 16:07:39
【问题描述】:
我正在尝试使用用 C++ 编写的 Visual Studio 2012 编译测试程序,该程序使用 Armadillo linear algebra 库计算任意矩阵的逆。这要求您在 Armadillo 的 config.h 文件中启用 LAPACK 并链接到项目属性中的库/dll(我已经这样做了)。
我正在为 64 位版本进行编译,因此我从 here 下载了合适的 BLAS/LAPACK 库,并将 VS 项目与它们相关联。完成所有这些后,我在尝试使用 Armadillo 的 inv(...) 方法时仍然遇到链接错误,如下所示:
1>Matrix.obj : error LNK2019: unresolved external symbol dgetrf_ referenced in function "public: static double __cdecl arma::auxlib::det_lapack<double>(class arma::Mat<double> const &,bool)" (??$det_lapack@N@auxlib@arma@@SANAEBV?$Mat@N@1@_N@Z)
1>Matrix.obj : error LNK2019: unresolved external symbol dgetri_ referenced in function "void __cdecl arma::lapack::getri<double>(long *,double *,long *,long *,double *,long *,long *)" (??$getri@N@lapack@arma@@YAXPEAJPEAN00100@Z)
谁能告诉我我做错了什么?非常感谢!
【问题讨论】:
-
确定你在 Project -> (Project Name) Properties -> Linker -> Input 下的 Additional Dependencies 中添加了库?
-
是的,我在那里引用了
libblas.lib和liblapack.lib
标签: c++ visual-studio lapack blas armadillo