目录
1. 前言
2. Armadillo下载
方法1:官网下载
方法2:安装包下载
3. Qt 中 Armadillo 配置
4. CLion 中 Armadillo 配置
5. VSCode 中 Armadillo 配置
1. 前言
工作和学习上一直用着 Armadillo 库中的矩阵运算,极大的提升了 Matlab 代码转 C++ 语言的效率,本来想着在 VSCode 上也搞个 Armadillo,但发现我不会。。网上找的某教程也是一言难尽,主要也是因为没接触过 VSCode,不太懂各类 “.json” 文件的意义,如果有朋友知道 VSCode 上 Armadillo 库的配置方法,请一定告诉我,让我也学学呗。
VSCode我已经会了 (<( ̄︶ ̄)>),详见第 5 节。—————————— 20230518
2. Armadillo下载
方法1:官网下载
下面是 Armadillo 库下载的官网链接,下载稳定版(参考图1)就可以了,这玩意不用要求最新;同时官网上也提供了 Armadillo 库中相关函数的使用方法以及作用,具体可查看 Documentation 中相关内容,见图2。
Armadillo: C++ library for linear algebra & scientific computing - Download
图1 Armadillo 版本下载截图
图2 Armadillo 中函数使用说明位置截图
方法2:安装包下载
https://download.csdn.net/download/Arry_W/87792992
3. Qt 中 Armadillo 配置
在 ".pro" 文件中末尾添加以下代码块即可,具体位置得看 Armadillo 包解压位置,修改下绝对地址就可以了。同时,需要将 "D:\library\armadillo\examples\lib_win64" 路径下的 “libopenblas.dll” 文件复制到 build 目录下,与 “test.exe” 放在相同文件中(注意,这里 “test” 是我的程序命名),见图3。
INCLUDEPATH+= D:/Library/Armadillo/include
LIBS += D:/library/armadillo/examples/lib_win64/libopenblas.dllD:/library/armadillo/examples/lib_win64/libopenblas.lib
图3 添加 libopenblas.dll 至 cmake-build-debug 中
测试代码如下:
#include <armadillo>using namespace arma;int main()
{mat A(5, 5, fill::randu);A.print("A: ");mat B = inv(A);B.print("inv(A): ");mat I = A * B;I.print("I: ");return 0;
}
运行结果如下:
图4 Qt 运行结果截图
4. CLion 中 Armadillo 配置
在 “CMakeList” 文件添加以下代码即可,提供了两种方法,任选一个就可以了,注意修改 Armadillo 的路径信息。同时,需要将 "D:\library\armadillo\examples\lib_win64" 路径下的 “libopenblas.dll” 文件复制到项目中 “cmake-build-debug” 中,见图5。
set(Library D:/library/)
include_directories(${Library}/armadillo/include) # 引用头文件
link_directories(${Library}/armadillo/examples/lib_win64) #添加依赖
add_executable(test01 main.cpp)
target_link_libraries(test01 libopenblas.lib) #添加库文件#include_directories(D:/library/armadillo/include) # 引用头文件
#link_directories(D:/library/armadillo/examples/lib_win64) #添加依赖
#add_executable(test01 main.cpp)
#target_link_libraries(test01 libopenblas.lib) #添加库文件
图5 添加 libopenblas.dll 至 cmake-build-debug 中
测试代码如下:
#include <armadillo>using namespace arma;int main()
{mat A = {{0.0013, 0.1741, 0.9885, 0.1662, 0.8760},{0.1933, 0.7105, 0.1191, 0.4508, 0.9559},{0.5850, 0.3040, 0.0089, 0.0571, 0.5393},{0.3503, 0.0914, 0.5317, 0.7833, 0.4621},{0.8228, 0.1473, 0.6018, 0.5199, 0.8622}};A.print("A: ");mat B = inv(A);B.print("inv(A): ");mat I = A * B;I.print("I: ");return 0;
}
运行结果如下:
图6 CLion 运行结果截图
5. VSCode 中 Armadillo 配置
a) 打开项目,在 “tasks.json” 文件中 “args” 模块添加以下代码:
"-std=c++11",
"-O2",
"-I",
"D:/library/armadillo/include",
"D:/library/armadillo/examples/lib_win64/libopenblas.dll",
"D:/library/armadillo/examples/lib_win64/libopenblas.lib",
b) 在 “c_cpp_properties.json” 文件中添加 Armadillo 路径信息,添加以下代码至 “includePath” 模块:
"D:/library/armadillo/include",
"D:/library/armadillo"
c) 同样,将 “libopenblas.dll” 文件复制到 “*.exe” 文件的相同目录下,至此配置完成。
需要注意的是,在 a、b 两个步骤中修改本地电脑中 Armadillo 的安装路径信息。测试代码如下:
#include <iostream>
#include <armadillo>using namespace arma;int main()
{mat A(10, 10, fill::randu);A.print("A: ");mat B = inv(A);B.print("inv(A): ");mat I = A * B;I.print("I: ");return 0;
}
运行结果如下:
图7 VSCode 运行结果截图