Armadillo结合wxWidgets时polyfit函数链接失败问题
wxWidgets + Armadillo polyfit 链接错误问题
环境与现象
Windows 10系统,Visual Studio 2022开发环境,基于wxWidgets制作Armadillo函数可视化示例。矩阵转置、FFT功能均可正常运行,但调用polyfit函数时,链接器抛出以下错误:
error LNK2019: unresolved external symbol sdot_ referenced in function "double __cdecl arma::blas::dot<double>(unsigned __int64,double const *,double const *)" (?? $dot@N@blas@arma@@YAN_KPEBN1@Z)
注意:不使用wxWidgets展示结果时,完全相同的代码可正常链接运行。
触发错误的代码
注释掉polyfit行即可正常编译链接:
vector <double> xcoords = { 7,8,9,10,11,12,13,14,15,16,17 }; vector <double> ycoords = { 32,35,29,34,30,24,32,24,23,28,21 }; arma::vec x = arma::vec(xcoords); arma::vec y = arma::vec(ycoords); arma::vec p = arma::polyfit(x, y, 2);
已尝试的解决措施
- 安装Armadillo时运行
Cmake .构建库,但因已提供libopenblas.dll和.lib,未生成armadillo.lib文件; - 下载最新win64版本的OpenBLAS库,替换原2016版的
libopenblas.lib和dll,问题依旧。
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

