“错误LNK2019:尚未解决......”

时间:2013-08-15 16:07:40

标签: c++ visual-studio lapack blas armadillo

我正在尝试使用用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)

任何人都能给我一个关于我做错了什么的轻微指示吗?非常感谢提前!

1 个答案:

答案 0 :(得分:1)

Armadillo提供的示例应该开箱即用。在examples / example1_win32文件夹中打开项目文件。您可能只想将它们用作代码的起点。

或者,此网站可能有用:Armadillo with BLAS and LAPACK in 64 bit Visual C++ projects

使用64位LAPACK和BLAS比32位版本快得多。您可能还想研究使用英特尔MKL,它提供LAPACK的高速多核实现。