写在前面
本文是在Qt create中配置第三方库yaml。编译器使用MinGW32(不是vs)
1、系统环境
这里仅说明我当时配置时所使用的环境
- win11 64位
- Qt 5.14.2
- yaml-cpp 0.7.0
- CMake 3.23.2
- 编译器:MinGW32
(yaml-cpp-master好像有点问题,每次编译完都会报错建议, 建议使用0.7.0)
关于配置MinGW32请看我的另一篇文章,第2点:配置环境变量
2、下载yaml-cpp 0.7.0
从Github上下载yaml-cpp
下载之后解压,打开解压后的目录,在里面新建一个名叫build
的文件夹。
3、CMake
打开camke-gui
①选择目录:
我这里的路径是:
# Where is the source code:
H:/google_download/yaml-cpp-yaml-cpp-0.7.0
# Where to build the binaries:
H:/google_download/yaml-cpp-yaml-cpp-0.7.0/build
!!!注意!!!
下面的路径都原本是基于yaml-cpp-master写的,现在请自行将它改成yaml-cpp-yaml-cpp-0.7.0
②Configure选项
点击configure
然后选择
Compilers
# C
D:/software/Qt/Qt5.14.2/Tools/mingw730_64/bin/gcc.exe
# C++
D:/software/Qt/Qt5.14.2/Tools/mingw730_64/bin/g++.exe
点击Finish
出现红色的不用管,看到Configuring done
就点击Generate
出现Generating done
就可以把cmake-gui关掉了。
4、编译
进入刚刚我们创建的build
文件夹中,你会看到刚刚CMake输出的内容。
将鼠标放在该文件夹界面内,按住shift键,同时点击鼠标右键,点击在此处打开Powershell窗口(s),进入Windows Powershell
输入下面命令,按回车键执行该命令。
mingw32-make -j 8
这里的-j 8
是为了让CPU进行多任务处理,可以加快编译速度。根据自己电脑的配置进行设置。
等待终端跑完。。。。。。。。。
你就可以在build
文件夹中看到libyaml-cpp.a
,这是我们后面需要用到的文件。
还有一个文件夹需要用到,就是在yaml-cpp-master目录下的include
5、用Qt测试
①新建Qt项目
在Qt Create中新建一个项目,按照正常流程新建即可,在选择kits的时候要注意选择MinGw 64
②移动xxx.a文件
在Qt的工程目录下新建一个lib
文件夹
将我们刚刚生成的libyaml-cpp.a
放到里面
③添加yaml-cpp
在xxx.pro
文件中
添加以下内容,根据你自己的实际情况修改:
INCLUDEPATH 就是我们刚刚提到的include
文件夹, 就是在yaml-cpp-master目录下的include
INCLUDEPATH += H:\google_download\yaml-cpp-master\include
LIBS += $$PWD/lib/libyaml-cpp.a
④执行qmake
⑤测试
首先准备一个yaml文件,test.yaml
内容是:
name: Hunzi
num: 123
在mainwindow.cpp中导入头文件
#include "yaml-cpp/yaml.h"
using namespace YAML;
在构造函数中写:
Node config;
try{
config = LoadFile("H:/TempFiles/test.yaml");
} catch(BadFile &e) {
qDebug() <<"read error!";
}
qDebug() << "name:" << QString::fromStdString(config["name"].as<std::string>()) << endl;
qDebug() << "num:" << config["num"].as<int>() << endl;
⑥检查kit
⑦运行
问题
如果kit不是我选择的MingGW 64
的话,比如我这里选MSVC2017 64
此时你只要改回MingGW 64
即可。
至此,Qt5.14.2配置yaml-cpp完成。