阅读量:0
文章目录
在C++开发中,我们经常会使用一些第三方库,比如说Boost
、fmt
、spdlog
等等。这些库的安装和使用一直是一个比较头疼的问题,特别是在Windows平台上。vcpkg
就是一个用于管理C++库的工具,它可以帮助我们安装和管理C++库。
本文将通过一个示例来介绍vcpkg
的基本使用方法。
工程文件
首先,我们需要一个C++工程。这里我们使用CMake
来构建工程。该工程使用到了第三方库libfmt. 我们的工程目录结构如下:
. ├── CMakeLists.txt ├── CMakePresets.json └── main.cpp
CMakeLists.txt
内容如下:
cmake_minimum_required(VERSION 3.19) project(vcpkg_demo) find_package(fmt CONFIG REQUIRED) add_executable(vcpkg_demo main.cpp) target_link_libraries(vcpkg_demo PRIVATE fmt::fmt)
CMakePresets.json
内容如下:
{ "version": 3, "cmakeMinimumRequired": { "major": 3, "minor": 19, "patch": 0 }, "configurePresets": [ { "name": "default", "generator": "Ninja", "binaryDir": "${sourceDir}/build", "cacheVariables": { "CMAKE_TOOLCHAIN_FILE": "/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake" } } ] }
main.cpp
内容如下:
#include <fmt/core.h> #include <fmt/ranges.h> #include <vector> int main() { fmt::print("Hello world"); std::vector<int> v = {1, 2, 3, 4, 5}; fmt::println("v = {}\n", v); return 0; }
接下来, 我们需要通过vcpkg
安装fmt
库。
安装vcpkg
首先,我们需要下载vcpkg
。可以通过以下命令下载:
git clone https://github.com/microsoft/vcpkg.git cd vcpkg ./bootstrap-vcpkg.sh # Linux/macOS # .\bootstrap-vcpkg.bat # Windows
安装fmt
库
有两种方式, 可以安装全局的库也可以安装仅该工程使用的库.
安装全局的库
然后,我们需要安装fmt
库。可以通过以下命令安装:
cd /path/to/vcpkg # 进入vcpkg目录 ./vcpkg install fmt
安装仅该工程使用的库
cd vcpkg_demo # 进入工程目录 /path/to/vcpkg/vcpkg new --application /path/to/vcpkg/vcpkg add port fmt /path/to/vcpkg/vcpkg install
此时, 会在工程目录下生成一个vcpkg.json
文件, 该文件用于记录工程所使用的库.
内如如下:
{ "dependencies": [ "fmt" ] }
还有一个 vcpkg-configuration.json
文件, 用于记录工程所使用的库的版本信息.
内容如下:
{ "default-registry": { "kind": "git", "baseline": "cacf5994341f27e9a14a7b8724b0634b138ecb30", "repository": "https://github.com/microsoft/vcpkg" }, "registries": [ { "kind": "artifact", "location": "https://github.com/microsoft/vcpkg-ce-catalog/archive/refs/heads/main.zip", "name": "microsoft" } ] }
该文件随着vcpkg版本的更新可能会有变化.
在CMake
中使用vcpkg
通过CMAKE_TOOLCHAIN_FILE
使用vcpkg
接下来,我们需要配置CMake
,让它能够找到vcpkg
安装的库。我们可以通过以下命令配置:
cd vcpkg_demo/../ # 在vcpkg_demo的上一级目录 cmake -DCMAKE_TOOLCHAIN_FILE=/path/to/vcpkg/scripts/buildsystems/vcpkg.cmake -S vcpkg_demo -B build-vcpkg-demo cmake --build build-vcpkg-demo
通过CMakePresets.json使用vcpkg
CMake Presets 是CMake 3.19版本引入的新特性,它可以帮助我们简化CMake的配置。
cd vcpkg_demo cmake --preset default cmake --build build/