配置时间 2022年11月13日
- 电脑主机:以下编程环境 只适用于windows 10 操作系统
- 在线安装Visual Studio 2019编译器环境【MSVC 14.29版本(对应Visual Studio1929 (Version 16.10 + 16.11)】+对应windows SDK10 kit 【版本10.0.19041.0】,注意各个工具的版本。
在线安装VS结束,要手动配置系统环境变量:
INCLUDE环境变量:
LIB环境变量:
PATH环境变量:
VS安装路径环境变量:
-
安装Matlab必须2020a新版以上(PATH环境变量配置,尽量排序靠前上移)
D:\Program Files\Polyspace\R2020a\bin\win64 D:\Program Files\Polyspace\R2020a\runtime\win64 D:\Program Files\Polyspace\R2020a\bin
- 安装matlab,需要同时勾选 matlab coder 以及library compiler等编译器APP工具,以便于自己编写的matlab .m程序文件,编译成 C++ .lib .dll 链接库
-
用matlab生成dll(Dynamic Linked Library)文件
- 需要带有mcc编译器的matlab软件,这个可以通过在matlab命令行中输入:!mcc命令来查看: 仔细阅读打印信息之后,可以看到mcc编译器的命令使用方法。然后输入mex -setup设置语言为C++。
- 然后在命令窗口输入mbuild -setup选中要使用的 C++ 编译器,而不是 C 编译器,在这里请选择你需要的C++编译器,尽量与C++程序开发使用的编译器保持一致。比如可以使用Visual Studio自带的Microsoft Visual C++ 2019编译器( matlab只是适配mingw 6.3)
- 选好编译器后在命令窗口输入deploytool进入编译窗口,在弹出的窗口中选择 Library Compiler 。选择C++ Shared Library类型,在旁边的白色框中点击加号将需要编译成dll的.m文件添加到当前项目中。然后可以点击右上角的package按钮生成dll文件了。
- 等待一段时间之后就可以在指定的目录下for_redistribution_files_only文件夹内看到生成dll以及相应的.h和.lib文件
- Cmake工具【3.24版本 下载 .msi直接安装】
-
安装Intel MKL OneAPI 库,参考:安装步骤
- 不要勾选安装内容太多,只勾选oneAPI Math Kernel Library
-
在 VC++目录中
设置可执行文件目录:C:\Program Files (x86)\Intel\oneAPI\mkl\2022.1.0\bin\intel64 包含目录:C:\Program Files (x86)\Intel\oneAPI\mkl\2022.1.0\include 库目录(有两个):C:\Program Files (x86)\Intel\oneAPI\mkl\2022.1.0\lib\intel64 C:\Program Files (x86)\Intel\oneAPI\compiler\2022.1.0\windows\compiler\lib\intel64_win
- 环境变量
- 项目涉及科学计算库Eigen、Dlib、Armadillo库等
- Arma库不需要编译安装,直接下载源文件即可被C++项目使用
- Arma库 要求MKL库 C++头文件 #include之前 宏定义:请看官网说明
#define ARMA_USE_LAPACK #define ARMA_USE_BLAS #define ARMA_USE_OPENMP #define ARMA_DONT_USE_WRAPPER
- Eigen库只需要源码即可(它们源码都在.h文件里)
-
安装Dlib库,cmake编译C++源码(需要编译成链接库才能被后续自己程序使用)
- 版本 dlib19.24
- 利用VS2019编译器
- 注意勾选BLAS、LAPARK、MKL库的支持,如果不需要人脸识别的使用,GIF、PNG、SQLITE3等可以不勾选
- MKL_WITH_TBB库不勾选,AVX、SSE4可以勾选,mkl_iomp_dll路径要找对
- 如果不想要底层加速计算库,不勾选上述库支持,后续项目使用计算则会很慢
- 设置CMAKE_INSTALL_PREFIX :自己安装路径
- 在线安装Qt 6.3.2版本 + Qtcreator 8.02版本 ,这可以适配QWT 6.2 新版本
QT 6.3.2 在线安装 搭配了 QtCreator 8.02(该Creator它由QT6.3.2 MSVC2019 X86_64构建的),在线安装,注意勾选MSVC 2019 编译器(Qt安装前本机已经安装VS2019环境以及路径Path都配置完成,QT自动识别系统中VS编程环境),以及安装可以按需勾选Mingw编译器,勾选外部Additonal library工具(多媒体模块等等,否则 qt multimedia 不能用)
安装新的QWT 6.2版本(最新版6.2支持>QT6.0),可以适配QtCreator 8.02,
【QWT插件 必须和QTCreator 同一版本编译器构建】。
QWT安装步骤(利用源码中的.pro文件),注意编译前的系列配置文件操作(参考链接),以及只能在release模式下编译。最后拷贝各个文件到QtCreator到对应目录下。【注意QWT需要匹配QtCreator版本和编译条件】,编译前需关闭部分注释,要参考链接:Qwt6.2笔记(一)之下载 编译 配置 - ;
自己项目:使用独立fftw3链接库和dlib链接库(use mkl blas编译版本)会冲突,编译dlib时候如果配置为MKL和BLAS等库,那么其中符号定义,则会与独立的fftw3.lib库里面函数或符号定义重名,编译不通过,因此 “独立的fftw3库”和“dlib+mkl库” 这二者取其一。文章来源:https://www.toymoban.com/news/detail-503852.html
利用QT+MSVC2019编译项目代码时候,配置pro文件,注意debug与release的区分,否则会运行出错,release版本时候运行,如果链接了qwtd.dll(debug版本) 则出错。在自己项目使用QWT时候,配置pro文件,在MSVC release模式下,不能链接qwtd.lib库(因为是debug版本)文章来源地址https://www.toymoban.com/news/detail-503852.html
QT C++,链接库lib和dll最好放到同一目录下,以便后续项目的构建,
生成exe二进制程序直接动态链接 ,否则程序找动态库很麻烦
到了这里,关于C++ 科学计算矩阵数学库: Intel MKL+ Dlib +Armadillo 编程环境配置安装以及使用matlab将M文件编译成链接库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!