如何解决在 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 操作(例如,chol
、mvnrnd
),我会遇到几个 未定义的对 `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
以查看.lapack
和my_script.cpp
是否为真/启用,没有麻烦的 Arma 操作(它们为真/启用)
如果有人对此有任何想法,将不胜感激,谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。