C++包管理之`vcpkg`简介

avatar
作者
筋斗云
阅读量:0

文章目录

在C++开发中,我们经常会使用一些第三方库,比如说Boostfmtspdlog等等。这些库的安装和使用一直是一个比较头疼的问题,特别是在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/ 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!