“错误 LNK2019:未解决...”
Posted
技术标签:
【中文标题】“错误 LNK2019:未解决...”【英文标题】:"error LINK2019: unresolved..." 【发布时间】: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
【参考方案1】:
犰狳提供的示例应该开箱即用。打开示例/example1_win32 文件夹中的项目文件。您可能只想将它们用作代码的起点。
或者,这个网站可能有用:Armadillo with BLAS and LAPACK in 64 bit Visual C++ projects
使用 64 位 LAPACK 和 BLAS 比 32 位版本快得多。您可能还想考虑使用英特尔 MKL,它提供了 LAPACK 的高速多核实施。
【讨论】:
谢谢,示例项目编译成功,但可执行文件没有运行Unable to start program ...example1_win32.exe. The system file cannot find the file specified
。谢谢你的链接,我看看它是否有效
按照分步指南工作,非常感谢!以上是关于“错误 LNK2019:未解决...”的主要内容,如果未能解决你的问题,请参考以下文章