新闻中心

C++怎么使用Conan或vcpkg管理依赖_C++现代包管理工具实践

2025-11-28
浏览次数:
返回列表
Conan和vcpkg是现代C++项目依赖管理的主流工具,Conan通过pip安装,配置conanfile.txt并生成CMake工具链文件实现依赖自动集成,适合复杂项目与CI/CD;vcpkg由微软开发,安装后执行bootstrap并使用vcpkg install获取库,通过vcpkg integrate install使CMake自动识别依赖,更简单且IDE集成好;两者均提升开发效率,选择应基于项目复杂度、团队习惯与平台需求。

c++怎么使用conan或vcpkg管理依赖_c++现代包管理工具实践

在现代C++开发中,手动管理第三方库越来越不现实。Conan和vcpkg是目前最主流的两个C++包管理工具,它们能帮你自动下载、编译和链接依赖库,极大提升开发效率。下面分别介绍如何在项目中使用Conan和vcpkg进行依赖管理。

使用Conan管理C++依赖

Conan是一个去中心化、跨平台的C++包管理器,支持任意构建系统(如CMake、Makefile、MSBuild等),灵活性高。

1. 安装Conan

确保已安装Python,然后通过pip安装:

pip install conan

2. 创建conanfile.txt

在项目根目录创建conanfile.txt,声明依赖和需要的选项:

[requires]
fmt/10.0.0
nlohmann_json/3.11.2
<p>[generators]
CMakeDeps
CMakeToolchain</p>

这表示项目依赖fmtnlohmann_json两个库。

3. 配置并生成构建环境

在构建目录中运行:

conan install .. --build=missing --generator CMakeDeps --generator CMakeToolchain -s build_type=Release

Conan会下载依赖,并生成CMake所需的配置文件(如conan_toolchain.cmake)。

4. 在CMakeLists.txt中使用

确保CMake使用Conan提供的toolchain:

cmake_minimum_required(VERSION 3.15)
project(MyProject)
<h1>使用Conan生成的toolchain</h1><p>set(CMAKE_TOOLCHAIN_FILE ${CMAKE_BINARY_DIR}/conan_toolchain.cmake)
include(${CMAKE_BINARY_DIR}/conan_exported_vars.cmake)</p><p>find_package(fmt REQUIRED)
find_package(nlohmann_json REQUIRED)</p><p>add_executable(main main.cpp)
target_link_libraries(main PRIVATE fmt::fmt nlohmann_json::nlohmann_json)</p>

5. 构建项目

正常调用CMake即可:

cmake .. -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake
cmake --build .

使用vcpkg管理C++依赖

vcpkg是微软推出的C++包管理器,集成良好,尤其适合Windows和MSVC用户,也支持Linux/macOS。

N世界 N世界

一分钟搭建会展元宇宙

N世界 138 查看详情 N世界

1. 安装vcpkg

克隆官方仓库并引导:

git clone https://github.com/Microsoft/vcpkg.git
./vcpkg/bootstrap-vcpkg.sh  # Linux/macOS
vcpkg\bootstrap-vcpkg.bat   # Windows

2. 安装所需库

例如安装fmt和json:

./vcpkg install fmt nlohmann-json

支持指定目标三元组,如fmt:x64-windowsfmt:x64-linux

3. 集成到项目

运行以下命令将vcpkg与CMake集成:

./vcpkg integrate install

这会让CMake自动找到vcpkg安装的库。

4. 编写CMakeLists.txt

无需额外设置toolchain,直接使用find_package

cmake_minimum_required(VERSION 3.15)
project(MyProject)
<p>find_package(fmt REQUIRED)
find_package(nlohmann_json REQUIRED)</p><p>add_executable(main main.cpp)
target_link_libraries(main PRIVATE fmt::fmt nlohmann_json::nlohmann_json)</p>

5. 正常构建

CMake会自动从vcpkg查找头文件和库:

cmake ..
cmake --build .

Conan vs vcpkg:如何选择?

两者各有优势,选择取决于项目需求:

  • vcpkg 更简单,适合快速上手,尤其是团队统一使用vcpkg时;对Visual Studio支持极佳。
  • Conan 更灵活,支持私有仓库、自定义profile、多平台交叉编译,适合复杂项目或CI/CD流程。
  • 若项目需发布包或使用非标准构建配置,Conan更合适。
  • 若追求开箱即用和IDE集成,vcpkg体验更流畅。

基本上就这些。两种工具都能显著简化C++依赖管理,建议根据团队习惯和项目规模选择其一并坚持使用。关键在于避免手动拷贝头文件或静态库,让包管理器统一处理版本和兼容性问题。不复杂但容易忽略。

以上就是C++怎么使用Conan或vcpkg管理依赖_C++现代包管理工具实践的详细内容,更多请关注其它相关文章!


# 重写  # 江门房地产网站推广查询  # 山东花卉网站建设方案  # 湖南查淘宝关键词排名  # 如何推广医院网站  # 蚌埠关键词推广排名优化  # 义乌猫舍网站建设  # 高端公司网站建设  # seo如何抓内链  # 宁夏短视频seo公司排行  # 网站推广商品的写手  # 尤其是  # 迭代  # 头文件  # 是一个  # 解决方法  # c++  # 微软  # 所需  # 有什么  # 管理器  # 工具  # github  # windows  # json  # git  # bootstrap  # js  # python  # linux  # 包管理 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 利用5118提升短视频内容效果_5118短视频关键词优化方法  QQ邮箱登录首页官网地址2026 QQ邮箱官方网页入口  如何在复杂的电商平台中优雅地管理共享资源并确保正确重定向,使用spryker-shop/resource-share-page模块助你一臂之力  漫蛙2正版漫画站 漫蛙2网页版快速访问入口  必由学官网首页入口 必由学教师网页版登录指南  俄罗斯Yandex免登录入口_Yandex搜索引擎官网一键直达  快手网页版在线登录 快手网页版官网入口快速访问  Win11怎么开启卓越性能模式 Win11电源选项启用高性能释放硬件潜力【方法】  AO3中文官网链接_AO3网页版稳定镜像站  纯CSS与HTML网格布局的HTML精简策略:SVG与JS方案解析  mysql密码锁定怎么解锁_mysql密码锁定解锁后修改密码步骤  解决 Express.js 中 PUT 请求密码修改失败的路由配置指南  文心一言怎样用插件调度API数据_文心一言用插件调度API数据【API调用】  QQ邮箱网页版快速登录 QQ邮箱邮箱账号官方入口地址  韩小圈电脑版在线入口_网页版免费登录地址  必由学官方网站入口 必由学学生教师共用登录通道  如何在低配置电脑上搭建轻量级J*a环境_占用更小的环境选择技巧  小红书怎么解除第三方平台绑定_小红书多平台登录解绑方法介绍  TikTok搜索结果不显示如何解决 TikTok搜索刷新优化方法  lar*el怎么安全地存储和获取配置文件中的敏感信息_lar*el敏感信息安全存储方法  QQ邮箱稳定登录入口_QQ邮箱官方网站网页版使用  qq邮箱发邮件给国外发不出去_QQ邮箱国际邮件发送失败原因与解决  Win10如何恢复误删的快捷方式_Win10重建常用软件快捷方式  Android Studio计算器C键功能异常排查与修复教程  零跑汽车11月交付量达70327台 实现连续9个月正增长  快速CSGO开箱网站指南 CSGO开箱平台推荐  汽水音乐网页版使用入口_汽水音乐电脑版播放指南  J*aScript DOM操作:高效清空列表元素的策略与实践  QQ邮箱官网登录入口 QQ邮箱网页版邮箱快速登录  谷歌浏览器如何快速清除某个网站的数据_Chrome网站缓存清理方法  海棠电脑版入口_通过电脑访问海棠官网阅读  一加手机拍照效果不好怎么办 一加哈苏影像调校与专业模式使用教程【高手篇】  html两个JS只运行一个怎么办_让双JS在html中都运行方法【技巧】  poki免费入口快捷访问 poki人气小游戏直接玩站点  汽水音乐在线版入口_汽水音乐网页播放手册  12306选座怎么选到商务座_12306商务座选择与配置说明  QQ邮箱官方邮箱登录入口 QQ邮箱网页版快速访问  抖音网页版快捷访问 抖音网页版网页版入口操作教程  微博网页版怎么开启两步验证_微博网页版账号安全两步验证设置方法  word邮件合并后日期格式不对怎么改_Word邮件合并日期格式修改方法  限制HTML日期输入框的日期选择范围  Node.js CSV 数据处理:基于字段空值条件过滤整条记录的策略  支付宝如何管理隐私设置_支付宝隐私保护的配置技巧  黑猫投诉统一入口官网 消费者权益保护投诉平台  Discord Slash 命令响应超时问题的异步解决方案  MAC如何将整个网页截长图_MAC使用Safari的导出为PDF或第三方工具  必由学在线入口 必由学网页版快速登录入口  Go RPC HTTP服务正确实现与常见陷阱解析  J*a里如何使用forEach遍历Map_Map遍历方法说明  Win10如何清理注册表垃圾 Win10注册表维护与优化指南【慎用】 

搜索