vcpkg介绍
vcpkg 是用于 C++ 的一种命令行包管理器。 它极大地简化了 Windows、Linux 和 macOS 上第三方库的购置与安装。 如果项目要使用第三方库,建议通过 vcpkg 来安装它们。 vcpkg 同时支持开源和专有库。 已测试 vcpkg Windows 目录中所有库与 Visual Studio 2015、Visual Studio 2017 及 Visual Studio 2019 的兼容性。 在 Windows 和 Linux/macOS 目录之间,vcpkg 现已支持超过 1900 个库。 C++ 社区正在不断向两个目录添加更多的库。
安装
从 GitHub 克隆 vcpkg 存储库:https://github.com/Microsoft/vcpkg。 可凭喜好下载到任意文件夹位置。 此位置的根是 vcpkg。 下载完成后,在命令行界面切换到该目录。
git clone https://github.com/Microsoft/vcpkg.git
在 vcpkg 根目录中,运行 vcpkg 引导程序:
bootstrap-vcpkg.bat (Windows)
./bootstrap-vcpkg.sh(Linux、macOS)
最后根据系统不同,添加到各自得环境变量里面
在 Linux 或 macOS 上,你可能需要在以下示例中使用 ./ 作为 vcpkg 命令的前缀。 请记得从 vcpkg 根目录运行这些命令。
用法
https://github.com/microsoft/vcpkg/blob/master/README_zh_CN.md
安装 Jsoncpp
这里我们使用 vcpkg 安装 jsoncpp 并指定 vcpkg 的 triplet 为 mingw,用户可以通过执行 vcpkg help triplet 来查看 vcpkg 支持的所有 triplet
vcpkg install jsoncpp:x64-mingw-static
CMake 使用 jsoncpp
find_package(jsoncpp CONFIG REQUIRED)
target_link_libraries(main PRIVATE jsoncpp_object jsoncpp_static)
就是我们要在我们项目中 CMakeLists.txt 中填入的内容如下所示
cmake_minimum_required(VERSION 3.22)
set(VCPKG_TARGET_TRIPLET "x64-mingw-static" CACHE STRING "" FORCE)
project(main)
set(CMAKE_CXX_STANDARD 11)
find_package(jsoncpp CONFIG REQUIRED)
add_executable(main main.cpp)
target_link_libraries(main PRIVATE jsoncpp_object jsoncpp_static JsonCpp::JsonCpp)
其中的第二行 set(VCPKG_TARGET_TRIPLET “x64-mingw-static” CACHE STRING “” FORCE) 是设置 vcpkg 的 triplet
Clion 配置
在 CMake options 中填入
-DCMAKE_TOOLCHAIN_FILE=<你安装vcpkg的位置>/scripts/buildsystems/vcpkg.cmake
测试
main.cpp
#include <iostream>
#include <json/json.h>
int main() {
Json::Value root;
root["one"] = "one";
std::cout << root.toStyledString() << std::endl;
std::cout << "Hello, World!" << std::endl;
return 10;
}