c++ 開(kāi)發(fā)中如何讀寫(xiě)yaml配置文件
c++ 開(kāi)發(fā)中利用yaml-cpp讀寫(xiě)yaml配置文件
1、yaml-cpp 是一個(gè)開(kāi)源庫(kù),地址在 github 上,https://github.com/jbeder/yaml-cpp。
在ubuntu中可以輸入git clone https://github.com/jbeder/yaml-cpp
獲取yaml-cpp源碼。
2、進(jìn)入到y(tǒng)aml-cpp目錄,新建一個(gè)build目錄。
3、進(jìn)入到build目錄,輸入cmake -D BUILD_SHARED_LIBS=ON …編譯出動(dòng)態(tài)庫(kù)。
4、創(chuàng)建自己測(cè)試用的文件夾,將yaml-cpp目錄下面的include 目錄拷貝到測(cè)試目錄下,將編譯后的動(dòng)態(tài)庫(kù)也拷貝到測(cè)試目錄下,同事目錄下在編寫(xiě)三個(gè)文件,分別為CMakeLists.txt、config.yaml、main.cpp。
main.cpp內(nèi)容如下:
#include <iostream> #include "include/yaml-cpp/yaml.h" using namespace std; int main(int argc,char** argv) { YAML::Node config = YAML::LoadFile("../config.yaml"); cout << "name:" << config["name"].as<string>() << endl; cout << "sex:" << config["sex"].as<string>() << endl; cout << "age:" << config["age"].as<int>() << endl; return 0; }
config.yaml內(nèi)容如下:
name: xiaoyu sex: man age: 20
CMakeLists.txt內(nèi)容如下:
cmake_minimum_required(VERSION 3.2) project(yaml_test) add_definitions(-std=c++11) include_directories(include) set(SRCS main.cpp) add_executable(yamltest ${SRCS}) target_link_libraries(yamltest ${CMAKE_HOME_DIRECTORY}/libs/libyaml-cpp.so)
5、在當(dāng)前目錄創(chuàng)建 build 文件夾,然后進(jìn)入 build 文件執(zhí)行 cmake 操作。
mkdir build cd build cmake ..
特別說(shuō)明:
編譯過(guò)程中如遇到:
關(guān)于 CMake Error: CMake Error: The source directory …does not appear to contain CMakeLists.txt.這個(gè)問(wèn)題時(shí),只需要復(fù)制一下終端報(bào)錯(cuò)內(nèi)容中的CMakeLists.txt對(duì)自己所寫(xiě)的cmake文件重新命名,編譯就可以啦。
到此這篇關(guān)于c++ 開(kāi)發(fā)中讀寫(xiě)yaml配置文件的文章就介紹到這了,更多相關(guān)c++ yaml配置文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
利用C/C++二進(jìn)制讀寫(xiě)png文件的方法示例
最近在做項(xiàng)目的時(shí)候遇到了這個(gè)問(wèn)題,所以想著總結(jié)下,方法自己和有需要的朋友,下面這篇文章主要介紹了利用C/C++二進(jìn)制讀寫(xiě)png文件的方法,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2016-12-12C++中為什么要使用動(dòng)態(tài)內(nèi)存
大家好,本篇文章主要講的是C++中為什么要使用動(dòng)態(tài)內(nèi)存,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下2022-02-02鏈接庫(kù)動(dòng)態(tài)鏈接庫(kù)詳細(xì)介紹
靜態(tài)鏈接庫(kù).lib和動(dòng)態(tài)鏈接庫(kù).dll。其中動(dòng)態(tài)鏈接庫(kù)在被使用的時(shí)候,通常還提供一個(gè).lib,稱為引入庫(kù),它主要提供被Dll導(dǎo)出的函數(shù)和符號(hào)名稱,使得鏈接的時(shí)候能夠找到dll中對(duì)應(yīng)的函數(shù)映射2012-11-11QT樹(shù)的具體項(xiàng)目實(shí)現(xiàn)
本文主要介紹了QT樹(shù)的具體項(xiàng)目實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06C語(yǔ)言實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)(鏈表)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06C++實(shí)現(xiàn)大整數(shù)乘法(字符串乘法)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)大整數(shù)乘法、字符串乘法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09