在 Windows 10 上链接犰狳和 OpenBlas

问题描述

如果问题是基本的或组织不当,这里的初学者很抱歉。

我正在尝试使用预编译的 OpenBlas here 将 Armadillo 10.3.0 链接到 Windows 10 上的 OpenBlas 0.3.13,但遇到了未定义的参考问题。

当我使用 g++ my_script.cpp -o my_script -I "C:/.../armadillo-10.3.0/include" -DARMA_DONT_USE_WRAPPER -L "C:/.../armadillo-10.3.0/examples/lib_win64/libopenblas.dll" -I "C:/.../boost_1_75_0" 编译我的 C++ 时,当 my_script.cpp 只包含基本的 Arma 操作时,它可以完美运行。

但是,如果我添加某些 Arma 操作(例如,cholmvnrnd),我会遇到几个 未定义的对 `xxx' 的引用 问题(参见下面的示例)我尝试编译:

C:/Strawberry/c/bin/../lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
C:\Users\XXX\AppData\Local\Temp\12\cc0AVY6p.o:my_script.cpp:
(.text$_ZN4arma6lapack5syevdIdEEvPcS2_PiPT_S3_S5_S5_S3_S3_S3_S3_[_ZN4arma6lapack5syevdIdEEvPcS2_PiPT_S3_S
5_S5_S3_S3_S3_S3_]+0x83): undefined reference to `dsyevd'

我试过了:

  • 使用 armadillo_bits/config.hpp 调整每个 here 的标志
  • 在编译 arma::arma_config 版本后检查 .blas 以查看 .lapackmy_script.cpp 是否为真/启用,没有麻烦的 Arma 操作(它们为真/启用)

如果有人对此有任何想法,将不胜感激,谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...