当前位置: 首页 > news >正文

C++包管理器vcpkg的使用

文档

https://learn.microsoft.com/zh-cn/vcpkg/get_started/get-started?pivots=shell-bash

搜索想要的包

https://vcpkg.io/en/packages?query=

安装vcpkg

1、获取源码

git clone https://github.com/microsoft/vcpkg.git
cd vcpkg && ./bootstrap-vcpkg.sh

2、配置 VCPKG_ROOT 环境变量

# cat ~/.bash_profile
# vcpkg
export VCPKG_ROOT=/usr/local/vcpkg
export PATH=$VCPKG_ROOT:$PATH

3、安装检查

$ vcpkg --version
vcpkg package management program version 2025-06-02-145689e84b7637525510e2c9b4ee603fda046b56See LICENSE.txt for license information.

安装ninja

https://ninja-build.org/

下载对应平台的包,解压即可

ninja --version
1.12.1

使用

新建一个项目

# 创建项目目录
mkdir helloworld && cd helloworld# 创建清单文件
vcpkg new --application# 添加 fmt 依赖项
vcpkg add port fmt

创建必要的文件

创建文件 CMakePresets.json

{"version": 2,"configurePresets": [{"name": "vcpkg","generator": "Ninja","binaryDir": "${sourceDir}/build","cacheVariables": {"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"}}]
}

CMakeUserPresets.json

{"version": 2,"configurePresets": [{"name": "default","inherits": "vcpkg","environment": {}}]
}

创建文件 CMakeLists.txt

cmake_minimum_required(VERSION 3.10)project(HelloWorld)find_package(fmt CONFIG REQUIRED)add_executable(HelloWorld helloworld.cpp)target_link_libraries(HelloWorld PRIVATE fmt::fmt)

创建文件 helloworld.cpp

#include <fmt/core.h>int main()
{fmt::print("Hello World!\n");return 0;
}

编译并运行项目

# 使用 CMake 配置生成
cmake --preset=default# 生成项目
cmake --build build# 运行应用程序
./build/HelloWorldHello World!

为了便捷,可以创建文件 Makefile

.PONEY: run
run:cmake --build build && ./build/HelloWorld

以后只要运行如下命令即可

make run

最终的项目文件

$ tree
.
├── CMakeLists.txt
├── CMakePresets.json
├── CMakeUserPresets.json
├── Makefile
├── helloworld.cpp
├── vcpkg-configuration.json
└── vcpkg.json

相关文章:

  • 【Erdas实验教程】021:遥感图像辐射增强( 查找表拉伸)
  • 设计模式-创建型模式(详解)
  • 车载功能框架 --- 整车安全策略
  • 贪心算法经典问题
  • 【LoRA】怎么指定LoRAConfig的target_modules
  • 自动化立体仓库堆垛机控制系统STEP7 FC1功能块 读取位置值SSI接口
  • k8s使用私有harbor镜像源
  • 2025年生命科学突破奖: GLP-1 激素机制及应用,多发性硬化症(MS)致病机制的新发现
  • 暑期车辆违停治理:视觉算法的实践路径
  • 本地 MySQL 环境连接问题排查与解决笔记
  • 一起来入门深度学习知识体系
  • 卷积神经网络的参数量及尺度变化计算
  • 【文献阅读】5%>100%: 打破视觉识别任务的完全微调的性能束缚
  • 简说ping、telnet、netcat
  • OpenVINO使用教程--resnet分类模型部署
  • 将图片合成为视频(基于 OpenCV)
  • 【Redis】集群
  • 21 - GAM模块
  • 基于单片机的PT100温度变送器设计
  • 一个前端正则校验引发的问题
  • 本地wordpress站点上传/线上教育培训机构十大排名
  • 网站会员系统怎么做/百度收录哪些平台比较好
  • 做网站先做前台还是后台/360搜索引擎下载
  • 网站开发体会范文/汕头seo建站
  • 网站怎么做下载网页/惠州市seo广告优化营销工具
  • 抚顺市城市建设档案馆网站/站长统计app最新版本2023