macOS 10.15.5
Cmake
git clone git@gitee.com:Coxhuang/yaml-cpp.git
cd yaml-cpp
mkdir build
cd build
# 二选一
# 静态库
cmake ..
# 动态库
cmake .. -D BUILD_SHARED_LIBS=ON
make
sudo make install
安装后,库文件和头文件路径:
头文件: /usr/local/include/yaml-cpp
库文件: /usr/local/lib/libyaml-cpp.a
cmake_minimum_required(VERSION 3.17)
project(yaml_demo)
set(CMAKE_CXX_STANDARD 14)
include_directories(/usr/local/include)
find_package (PkgConfig REQUIRED)
pkg_check_modules(YAMLCPP REQUIRED yaml-cpp) # 查找yaml-cpp
link_directories(
${YAMLCPP_LIBRARY_DIRS} # 添加yaml-cpp库文件路径
)
add_executable(yaml_demo main.cpp)
target_link_libraries(yaml_demo
${YAMLCPP_LIBRARIES} # 将yaml-cpp库连接到yaml_demo可执行文件中
)
name: Cox
sex: male
age: 18
skills:
C++: 1
Python: 1
#include <iostream>
#include "yaml-cpp/yaml.h"
int main() {
YAML::Node config = YAML::LoadFile("../config.yaml");
std::cout << "name:" << config["name"].as<std::string>() << std::endl;
std::cout << "sex:" << config["sex"].as<std::string>() << std::endl;
std::cout << "age:" << config["age"].as<int>() << std::endl;
for (auto foo : config["skills"]) {
std::cout << foo.first.as<std::string>() << ":" << foo.second.as<bool>() << std::endl;
}
return 0;
}
输出:
name:Cox
sex:male
age:18
C++:1
Python:1