溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何在VS2019中使用CMake 3.18.3編譯安裝yaml-cpp庫

發(fā)布時(shí)間:2021-10-19 16:43:00 來源:億速云 閱讀:358 作者:iii 欄目:編程語言

這篇文章主要介紹“如何在VS2019中使用CMake 3.18.3編譯安裝yaml-cpp庫”,在日常操作中,相信很多人在如何在VS2019中使用CMake 3.18.3編譯安裝yaml-cpp庫問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”如何在VS2019中使用CMake 3.18.3編譯安裝yaml-cpp庫”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

1、應(yīng)用背景

由于采用C++編寫控制臺(tái)程序的過程中使用yaml文件比較多,目前使用比較的多的就是yaml-cpp這個(gè)C++ yaml解析庫了。之前寫過兩篇關(guān)于在CentOS7下編譯yaml-cpp庫和Windows10下使用VS2017編譯和使用yaml-cpp庫的文章。
最近實(shí)際項(xiàng)目中換成了最新版的Visual Studio 2019,我使用的Windows系統(tǒng)是Win7和Windows10,所以需要重新編譯基于VS2019下的yaml-cpp的Debug和Release版本的Win32的靜態(tài)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文件,然后解壓縮到指定的文件目錄下:
如何在VS2019中使用CMake 3.18.3編譯安裝yaml-cpp庫

3、使用VS2019和CMake3.18.3編譯yaml-cpp

首先確保已經(jīng)在自己的系統(tǒng)下安裝了VS2019和CMake
我的系統(tǒng)是Windows7、VS2019、CMake 3.18.3,可以根據(jù)需要選擇Windows10、CMake 3.19.2也行
解壓后的yaml-cpp源碼包目錄結(jié)構(gòu)如下:
如何在VS2019中使用CMake 3.18.3編譯安裝yaml-cpp庫
Github倉庫上對(duì)于在Windows10下使用yaml-cpp的CMake編譯介紹到比較簡(jiǎn)單,具體如下圖所示:
如何在VS2019中使用CMake 3.18.3編譯安裝yaml-cpp庫
下載好yaml-cpp源代碼并解壓到F:\rate\iot_sdk\third_part目錄下,然后再該目錄下創(chuàng)建一個(gè)build目錄,用于存放編譯過程中的中間文件,這樣做主要是為了不影響源代碼,弄錯(cuò)了可以刪除重來。
我在Windows7系統(tǒng)下使用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指定是否編譯動(dòng)態(tài)庫的開關(guān),ON表示編譯動(dòng)態(tài)庫,OFF表示不編譯動(dòng)態(tài)庫只編譯靜態(tài)庫。
如何在VS2019中使用CMake 3.18.3編譯安裝yaml-cpp庫
然后使用VS2019打開YAML_CPP.sln工程文件,如下圖所示:
如何在VS2019中使用CMake 3.18.3編譯安裝yaml-cpp庫
如何在VS2019中使用CMake 3.18.3編譯安裝yaml-cpp庫

3.1、使用VS2019編譯Win32 Debug模式的yaml-cppd.lib

選擇需要編譯的平臺(tái)和模式,如Win32/Win64以及Debug/Release
上面選擇了Debug以及Win32,然后右鍵點(diǎn)擊【解決方案】-》【生成解決方案】
如何在VS2019中使用CMake 3.18.3編譯安裝yaml-cpp庫
然后會(huì)生成一些基于Win32平臺(tái)的Debug版本的靜態(tài)庫
如何在VS2019中使用CMake 3.18.3編譯安裝yaml-cpp庫
如何在VS2019中使用CMake 3.18.3編譯安裝yaml-cpp庫
這個(gè)yaml-cppd.lib就是我們使用VS2019項(xiàng)目編譯出來的基于Win32平臺(tái)的Debug靜態(tài)庫,在使用VS2019開發(fā)yaml-cpp的項(xiàng)目中需要引入這個(gè)lib庫

3.2、使用VS2019編譯Win32 Release模式的yaml-cpp.lib

選擇Release、Win32,右鍵點(diǎn)擊【解決方案】-》【生成解決方案】,如下圖所示:
如何在VS2019中使用CMake 3.18.3編譯安裝yaml-cpp庫
如何在VS2019中使用CMake 3.18.3編譯安裝yaml-cpp庫
如何在VS2019中使用CMake 3.18.3編譯安裝yaml-cpp庫
關(guān)于在Windows7下使用VS2019編譯Win64位的Debug庫和Release庫的方法也是類似的,對(duì)應(yīng)的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項(xiàng)目工程后,使用VS2019打開,分別選擇Win64位的Debug或Win64的Release模式,然后右鍵點(diǎn)擊【解決方案】-》【生成解決方案】,會(huì)分別在相應(yīng)目錄下生成yaml-cppd.lib和yaml-cpp.lib文件

4、在VS2019中使用yaml-cpp庫讀寫yaml文件

這個(gè)在VS2019中引入yaml-cpp庫的方式和VS2017中一樣,具體可以參考我之前的博客Windows10下使用VS2017編譯和使用yaml-cpp庫
如何在VS2019中使用CMake 3.18.3編譯安裝yaml-cpp庫
如何在VS2019中使用CMake 3.18.3編譯安裝yaml-cpp庫
測(cè)試的config.yaml文件如下:

lastLogin: 2021-01-20 08:26:10username: rootpassword: 123

C++測(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;}

到此,關(guān)于“如何在VS2019中使用CMake 3.18.3編譯安裝yaml-cpp庫”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI