这篇文章主要介绍“如何在VS2019中使用CMake 3.18.3编译安装yaml-cpp库”,在日常操作中,相信很多人在如何在VS2019中使用CMake 3.18.3编译安装yaml-cpp库问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何在VS2019中使用CMake 3.18.3编译安装yaml-cpp库”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
由于采用C++编写控制台程序的过程中使用yaml文件比较多,目前使用比较的多的就是yaml-cpp这个C++ yaml解析库了。之前写过两篇关于在CentOS7下编译yaml-cpp库和Windows10下使用VS2017编译和使用yaml-cpp库的文章。
最近实际项目中换成了最新版的Visual Studio 2019,我使用的Windows系统是Win7和Windows10,所以需要重新编译基于VS2019下的yaml-cpp的Debug和Release版本的Win32的静态lib库,大体步骤和Windows10下使用VS2017编译和使用yaml-cpp库这篇博客描述的一致。
首先从https://github.com/jbeder/yaml-cpp上下载源代码
git clone https://github.com/jbeder/yaml-cpp.git
使用git
拉取代码
或者直接在https://github.com/jbeder/yaml-cpp上下载zip文件,然后解压缩到指定的文件目录下:
首先确保已经在自己的系统下安装了VS2019和CMake
我的系统是Windows7、VS2019、CMake 3.18.3,可以根据需要选择Windows10、CMake 3.19.2也行
解压后的yaml-cpp源码包目录结构如下:
Github仓库上对于在Windows10下使用yaml-cpp的CMake编译介绍到比较简单,具体如下图所示:
下载好yaml-cpp源代码并解压到F:\rate\iot_sdk\third_part
目录下,然后再该目录下创建一个build
目录,用于存放编译过程中的中间文件,这样做主要是为了不影响源代码,弄错了可以删除重来。
我在Windows7系统下使用VS2019和CMake 3.18.3编译yaml-cpp的命令为:
cmake .. -G "Visual Studio 16 2019" -A Win32 -DCMAKE_INSTALL_PREFIX=F:\rate\iot_sdk\third_part\yaml-cpp\install -DYAML_BUILD_SHARED_LIBS=OFF ..
或者
cmake .. -G "Visual Studio 16 2019 Win32 " -DCMAKE_INSTALL_PREFIX=F:\rate\iot_sdk\third_part\yaml-cpp\install -DYAML_BUILD_SHARED_LIBS=OFF ..
上面的-G命令指定了VS2019作为工具,-DCMAKE_INSTALL_PREFIX指定安装目录,
-DYAML_BUILD_SHARED_LIBS指定是否编译动态库的开关,ON表示编译动态库,OFF表示不编译动态库只编译静态库。
然后使用VS2019打开YAML_CPP.sln工程文件,如下图所示:
yaml-cppd.lib
库选择需要编译的平台和模式,如Win32/Win64以及Debug/Release
上面选择了Debug以及Win32,然后右键点击【解决方案】-》【生成解决方案】
然后会生成一些基于Win32平台的Debug版本的静态库
这个yaml-cppd.lib
就是我们使用VS2019项目编译出来的基于Win32平台的Debug静态库,在使用VS2019开发yaml-cpp的项目中需要引入这个lib库
yaml-cpp.lib
库选择Release、Win32,右键点击【解决方案】-》【生成解决方案】,如下图所示:
关于在Windows7下使用VS2019编译Win64位的Debug库和Release库的方法也是类似的,对应的CMake编译命令为:
cmake .. -G "Visual Studio 16 2019 Win64 " -DCMAKE_INSTALL_PREFIX=F:\rate\iot_sdk\third_part\yaml-cpp\install -DYAML_BUILD_SHARED_LIBS=OFF ..
生成了YAML-CPP.sln项目工程后,使用VS2019打开,分别选择Win64位的Debug或Win64的Release模式,然后右键点击【解决方案】-》【生成解决方案】,会分别在相应目录下生成yaml-cppd.lib和yaml-cpp.lib文件
这个在VS2019中引入yaml-cpp库的方式和VS2017中一样,具体可以参考我之前的博客Windows10下使用VS2017编译和使用yaml-cpp库
测试的config.yaml文件如下:
lastLogin: 2021-01-20 08:26:10username: rootpassword: 123
C++测试源代码如下:
#include <iostream>#include <fstream>#include "yaml-cpp/yaml.h"int main(){ YAML::Emitter out;out << "Hello, World!";std::cout << "Here's the output YAML:\n" << out.c_str();YAML::Node config = YAML::LoadFile("config.yaml");if (config["lastLogin"]) { std::cout << "Last logged in: " << config["lastLogin"].as<std::string>() << std::endl;}const std::string username = config["username"].as<std::string>();const std::string password = config["password"].as<std::string>();//login(username, password);//config["lastLogin"] = getCurrentDateTime();config["lastLogin"] = "2021-01-21 10:26:10";std::cout << "username: " << username << ", password: " << password << std::endl;std::ofstream fout("config.yaml");fout << config;return 0;}
到此,关于“如何在VS2019中使用CMake 3.18.3编译安装yaml-cpp库”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。