Windows下使用VS2019和CMake 3.18.3编译使用yaml-cpp库
1、应用背景
通常在程序设计中采用xml、ini、yaml、json等配置文件比较多。在Java的SpringBoot项目中通常采用yaml或者yml文件作为应用的配置项。由于本人在实际项目中采用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库这篇博客描述的一致。
2、下载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文件,然后解压缩到指定的文件目录下:
3、使用VS2019和CMake3.18.3编译yaml-cpp
首先确保已经在自己的系统下安装了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表示不编译动态库只编译静态库。