最近在学习非线性规划求解器的开发,基于MATLAB下的fmincon求解器。想开发基于C++版本的fmincon。于是配置Armadillo库。下列是自己配置库的方法:
配置详细参考了这个博主的方法:
Visual Studio配置C++中Armadillo矩阵库的方法 - 知乎 (zhihu.com)
现在 Armadillo的版本已经更新到了12.8.2
下载稳定版本,并且利用7-ZIP 解压缩。解压缩之后即可,不用进行过多操作。
我将该库存放在D盘下:"D:\MyArmadillo\MyArmadillo\armadillo-12.8.2"
请注意库中比较重要的两个文件:
"D:\MyArmadillo\MyArmadillo\armadillo-12.8.2\examples\lib_win64"路径下的:
这是编译好的库,在visual studio项目中添加这个库即可完成编译。
我的项目是Cmake创建的项目中,项目中计算用到了Armadillo库的函数,于是要包含库。
在项目的CMakeLists.txt中添加语句:Armadillo 提供了预编译的 .lib
文件,需要更新 target_link_libraries
来包含它。
include_directories(D:/MyArmadillo/MyArmadillo/armadillo-12.8.2/include/ ./include)
link_directories(D:/MyArmadillo/MyArmadillo/armadillo-12.8.2/examples/lib_win64/)
请注意,这其中的地址是根据自己的解压缩地址来更改的。
完成上述操作,本项目可以生成成功。但是运行输出的exe文件会报错。
#在 Windows 上,为避免链接错误,请尝试将 libopenblas.dll 和输出“.exe”放在同一文件夹中。
操作:将armadillo-12.8.2下的libopenblas.dll文件复制到该项目生成的exe文件夹即可。
以上,完成项目中对armadillo库的配置。