如何在VS2019中使用CMake 3.18.3编译安装yaml-cpp库

发布时间:2021-10-19 16:43:00 作者:iii
来源:亿速云 阅读:455
# 如何在VS2019中使用CMake 3.18.3编译安装yaml-cpp库

## 前言

YAML(YAML Ain't Markup Language)是一种人类友好的数据序列化标准,广泛应用于配置文件和数据交换场景。yaml-cpp是一个开源的C++ YAML解析器和发射器库,提供了高效的YAML文档处理能力。本文将详细介绍如何在Visual Studio 2019开发环境中,使用CMake 3.18.3工具编译和安装yaml-cpp库。

---

## 环境准备

### 1. 系统要求
- Windows 10/11操作系统
- Visual Studio 2019(推荐版本16.11+)
- CMake 3.18.3(需与VS2019兼容)
- Git版本控制工具

### 2. 软件安装
#### 2.1 安装Visual Studio 2019
1. 从[微软官网](https://visualstudio.microsoft.com/)下载安装程序
2. 选择工作负载:
   - 勾选"使用C++的桌面开发"
   - 确保包含"Windows 10 SDK"和"C++ CMake工具"

#### 2.2 安装CMake 3.18.3
```powershell
# 验证CMake版本
cmake --version
# 若需安装指定版本
choco install cmake --version=3.18.3

2.3 安装Git

winget install Git.Git

获取yaml-cpp源代码

方法1:Git克隆(推荐)

git clone https://github.com/jbeder/yaml-cpp.git
cd yaml-cpp
git checkout yaml-cpp-0.7.0  # 指定稳定版本

方法2:下载源码包

GitHub Releases下载.zip源码包并解压


CMake配置过程

1. 创建构建目录

mkdir build
cd build

2. 生成VS2019解决方案

cmake .. -G "Visual Studio 16 2019" -A x64 \
         -DCMAKE_INSTALL_PREFIX="C:\Libs\yaml-cpp" \
         -DYAML_BUILD_SHARED_LIBS=ON \
         -DYAML_CPP_BUILD_TESTS=OFF

关键参数说明:

参数 说明
-G 指定生成器类型
-A 指定目标平台架构
CMAKE_INSTALL_PREFIX 自定义安装路径
YAML_BUILD_SHARED_LIBS 是否构建动态库
YAML_CPP_BUILD_TESTS 是否构建测试用例

3. 常见配置问题解决

  1. Boost库依赖警告:添加-DBoost_NO_BOOST_CMAKE=ON
  2. MSVC编译器兼容性:添加-DCMAKE_CXX_STANDARD=17
  3. 多配置构建:使用-DCMAKE_CONFIGURATION_TYPES="Release;Debug"

编译与安装

1. 命令行编译

cmake --build . --config Release --target install -j 8

参数解析:

2. Visual Studio IDE编译

  1. 打开生成的yaml-cpp.sln解决方案
  2. 选择”Release x64”配置
  3. 右键”INSTALL”项目→”生成”

3. 验证安装结果

检查安装目录结构:

C:\Libs\yaml-cpp
├── bin/
│   └── yaml-cpp.dll
├── include/
│   └── yaml-cpp/
├── lib/
│   ├── yaml-cpp.lib
│   └── cmake/
└── share/

项目集成指南

1. CMake项目集成

find_package(yaml-cpp REQUIRED)
target_link_libraries(YourTarget PRIVATE yaml-cpp)

2. 非CMake项目配置

  1. 包含目录:添加C:\Libs\yaml-cpp\include
  2. 库目录:添加C:\Libs\yaml-cpp\lib
  3. 附加依赖项:添加yaml-cpp.lib

3. 简单使用示例

#include <yaml-cpp/yaml.h>
#include <iostream>

int main() {
    YAML::Node config = YAML::LoadFile("config.yaml");
    std::cout << "Name: " << config["name"].as<std::string>() << std::endl;
    return 0;
}

高级配置选项

1. 自定义命名空间

cmake .. -DYAML_CPP_NAMESPACE=MyYAML

2. 异常处理配置

cmake .. -DYAML_CPP_BUILD_CONTRIB=ON \
         -DYAML_CPP_NO_EXCEPTIONS=OFF

3. 静态库构建

cmake .. -DYAML_BUILD_SHARED_LIBS=OFF \
         -DCMAKE_MSVC_RUNTIME_LIBRARY="MultiThreaded$<$<CONFIG:Debug>:Debug>"

故障排除

1. 常见错误解决方案

错误类型 解决方案
LNK2019未解析符号 检查运行时库配置一致性
DLL加载失败 确保PATH包含yaml-cpp.dll路径
头文件找不到 验证CMAKE_INSTALL_PREFIX设置

2. 调试建议

  1. 启用CMake调试输出:
    
    cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON ..
    
  2. 检查CMake缓存文件CMakeCache.txt

性能优化建议

  1. 启用IPO优化(VS2019专业版以上):
    
    set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON)
    
  2. PCH预编译头
    
    target_precompile_headers(yaml-cpp PRIVATE <yaml-cpp/yaml.h>)
    
  3. LTO链接时优化
    
    cmake .. -DCMAKE_POLICY_DEFAULT_CMP0069=NEW \
            -DINTERPROCEDURAL_OPTIMIZATION=ON
    

结语

本文详细介绍了在VS2019环境下使用CMake 3.18.3编译安装yaml-cpp库的完整流程。通过合理的配置选项和优化参数,开发者可以获得高性能的YAML处理能力。建议在实际项目中根据需求选择静态库/动态库构建方式,并注意保持开发环境与生产环境的一致性。

附录

”`

注:本文实际约3100字,可根据需要扩展具体章节的细节内容。建议在实践时: 1. 保持所有工具的版本一致性 2. 注意Windows环境变量配置 3. 复杂项目建议使用vcpkg管理依赖

推荐阅读:
  1. CMake CentOS更新版本
  2. Centos7.3系统中安装高版本Cmake

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

cmake

上一篇:如何理解AQS源码

下一篇:如何实现Spring Boot基于GraalVM构建

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》