• 【配置环境】Windows下C/C++第三方库管理工具vcpkg安装和使用


    目录

    一,环境准备

    二,vcpkg简介

    三,Window系统下载vcpkg

    四,Linux系统下载vcpkg

    五,vcpkg命令介绍

    1.命令参照表

    2.常用的vcpkg命令以及详细解释


    一,环境准备

    • Git - Downloads 根据平台下载最新版本(傻瓜式安装)
    • Visual Studio 2015 或更新的版本(包含英文语言包),点击VS界面菜单栏的工具->获取工具和功能,查看是否下载英文语言包

    • Windows 7 或更新的版本

    二,vcpkg简介

    前言

    • vcpkg是微软公司开发的一个用于在多个平台上管理C++库的开源工具。它提供了一个简单易用的方式来下载、构建和安装各种C++库,以解决C++开发中的依赖管理问题
    • vcpkg支持Windows、macOS和Linux等多个操作系统,为开发人员提供了跨平台的便捷工具来集成和管理C++库。
    • 提供了超过1500个C++库的预编译二进制包,并且还提供了一组命令行工具,以帮助用户安装,卸载,升级和管理C++库的版本。

    特点

    • 简化依赖管理:vcpkg提供了一个简单易用的方式来下载、构建和安装C++库,简化了复杂的依赖管理工作。开发人员无需手动处理繁琐的库安装和集成过程,而是通过简单的命令行接口来管理库的依赖关系。
    • 快速和方便的下载:vcpkg提供了一个简单的命令行接口,使得开发人员能够方便地从vcpkg的官方库集合中下载所需的C++库。这些库经过了优化和测试,保证可靠性和稳定性。
    • 自动构建和安装:vcpkg能够自动下载源代码、构建库,并将其安装到vcpkg的工具链目录中。这使得库的构建和安装过程自动化,减少了开发人员的工作量。
    • 版本控制和升级:vcpkg允许开发人员指定所需库的特定版本,并确保正确的库版本被下载和使用。它还支持库的升级和管理,使得开发人员能够轻松跟踪和更新库的不同版本。
    • 集成支持:vcpkg与常用的构建工具和包管理器(如CMake、Visual Studio和Git)紧密集成,使开发人员能够轻松管理和集成C++库的依赖关系。vcpkg的CMake集成可自动生成包含所需库的正确链接和包含路径的CMake配置文件。
    • 丰富的库集合:vcpkg维护了一个庞大的C++库集合,包括常用的开源库、第三方库和平台特定库。开发人员可以方便地浏览和查找所需的库,并通过vcpkg快速安装和使用它们。
    • 跨平台支持:vcpkg支持多个操作系统,包括Windows、macOS和Linux,使得开发人员能够使用同一工具在不同平台上管理C++库的依赖。这有助于跨平台开发的流程和效率。

    三,Window系统下载vcpkg

    1.安装vcpkg( git克隆 vcpkg 仓库)

    • 在C盘路径下右击鼠标,点击 Git Bash Here 弹出命令窗口,输入以下命令:
      • git clone https://github.com/microsoft/vcpkg.git

    2.构建vcpkg工具

    • window系统执行vcpkg目录下的 bootstrap-vcpkg.bat 脚本来构建vcpkg工具。
    • macOS、Linux系统执行 bootstrap-vcpkg.sh 脚本来构建vcpkg工具。

    3.集成vcpkg

    • 将vcpkg所在的目录路径添加到系统的环境变量中,以便能够在任何位置调用vcpkg。

    4.安装第三方库

    • 安装32位(默认安装) 
      •  vcpkg install [package name]
    • 安装64位
      •  vcpkg install [package name]:x64-windows

    • 安装第三方库出现的问题
    • 解决方式:cmd窗口切换到vcpkg目录,运行git pull 命令以获取最新的vcpkg代码

    • 安装第三方库成功效果(libevent库)
    • 在vcpkg/packages目录下可以查看已安装的库

    5.集成到项目中

    • 执行命令:vcpkg integrate install
    • 执行后就可以让 VS 可以自动访问到[vcpkg-path]/installed下以安装的库,我们不需要另外去为项目配置库环境。
    • 在此之后,您可以创建一个非 CMake 项目 (或打开已有的项目)。在您的项目中,所有已安装的库均可立即使用 #include 包含您需使用的库的头文件且无需额外配置。 

    6.为什么执行 vcpkg integrate install 命令后,在项目中更方便地使用vcpkg安装的库?(题外话)

    • 构建系统集成:vcpkg integrate install命令会自动检测项目所使用的构建系统,如CMake、Visual Studio等,并进行相应的集成配置。它会将vcpkg的工具链路径添加到构建系统的配置中,使得构建系统能够在库搜索路径中找到vcpkg安装的库。
    • 自动设置链接和包含路径:在执行vcpkg integrate install命令后,vcpkg会自动将库的链接路径和头文件包含路径添加到项目的构建系统配置中。这样,在构建项目时,构建系统会自动查找并链接vcpkg安装的库,同时能够正确包含库的头文件。
    • 透明集成:一旦使用vcpkg integrate install命令将vcpkg与项目集成,开发人员就可以无需关心库的链接和包含路径的配置细节。它们可以直接在项目中使用vcpkg安装的库,就像在使用系统库一样简单。
    • 跨平台支持:vcpkg integrate install命令能够根据不同的构建系统和操作系统进行适配,确保在跨平台开发时能够正确地设置链接和包含路径。这使得在不同平台上使用vcpkg安装的库变得更加方便和一致。

    四,Linux系统下载vcpkg

    1. 按 Ctrl+Alt+t 打开命令终端,执行 cd ~ 切换到家目录
    2. 执行以下命令下载vcpkg源代码
      1. git clone https://github.com/Microsoft/vcpkg.git
    3. 执行 cd vcpkg 进入vcpkg目录,执行以下命令来构建vcpkg
      1. ./bootstrap-vcpkg.sh
    4. 执行完上述命令后会报如下错误,这说明缺乏构建工具和相关依赖项。
    5.  然后根据自己的Linux发行版执行适当的命令,这里我的是Ubuntu,执行如下命令
      1. sudo apt-get update
      2. sudo apt-get install curl zip unzip tar
    6. 再次执行 ./bootstrap-vcpkg.sh 命令构建生成vcpkg
    7. 任意位置执行vcpkg命令会出现如下效果,这是因为未配置它的环境变量


    在Linux上配置vcpkg的环境变量,可以按照以下步骤进行操作:
    1. 编辑bashrc文件:运行以下命令以编辑bashrc文件(.bashrc文件详细介绍总结
      1. vim ~/.bashrc
    2. 添加vcpkg路径:在打开的bashrc文件的末尾,添加以下行,然后保存并关闭bashrc文件(VCPKG_HOME为vcpkg文件夹的绝对路径
      1. export VCPKG_HOME=~/vcpkg
      2. export PATH=$VCPKG_HOME:$PATH
    3. 刷新bashrc文件:运行以下命令以刷新bashrc文件中的环境变量
      1. source ~/.bashrc
    4. 验证设置:运行以下命令来验证vcpkg环境变量是否正确配置
      1. echo $VCPKG_HOME

    五,vcpkg命令介绍

    1.命令参照表

    vcpkg search [pat]

    搜索要构建的可用包

    vcpkg install 安装软件包
    vcpkg remove 卸载安装包
    vcpkg update列出可以更新的包
    vcpkg remove --outdated卸载所有过时的软件包
    vcpkg upgrade重新构建所有过时的软件包
    vcpkg hash [alg]通过特定算法对文件进行哈希,默认为SHA512
    vcpkg help topics显示帮助主题列表
    vcpkg help 显示特定主题的帮助
    vcpkg list列出已安装的软件包
    vcpkg integrate install使已安装的包在用户范围内可用,需要管理第一次使用的特权
    vcpkg integrate remove删除用户范围的集成
    vcpkg integrate project为单个VS项目生成一个引用NuGet包使用
    vcpkg integrate powershell

    启用PowerShell选项卡完成

    vcpkg export ... [opt]...导出一个包
    vcpkg edit

    打开一个端口进行编辑(使用环境器程序,默认为“code”)

    vcpkg create [archivename]创建一个新端口
    vcpkg x-init-registry 初始化目录中的注册表
    vcpkg format-manifest --all格式化所有vcpkg,json文件,在提交到vcpkg之前运行这个命令
    vcpkg owns

    搜索安装包中的文件

    vcpkg depend-info ...

    显示端口的依赖项列表

    vcpkg env为开发或编译创建一个干净的shell环境
    vcpkg version

    显示版本信息

    vcpkg contact

    显示联系人信息发送反馈

    @response_file指定响应文件以提供附加参数
    有关更多帮助(包括示例),请参阅附带的README。Md和docs文件夹

    2.常用的vcpkg命令以及详细解释

    1. vcpkg version显示vcpkg的版本信息。该命令会显示当前vcpkg工具的版本号和详细信息。
    2. vcpkg search :搜索库。该命令可用于在vcpkg的库集合中搜索特定的C++库。
    3. vcpkg install 安装库。使用该命令可以安装指定的C++库。例如,vcpkg install libevent将安装libevent库。
    4. vcpkg remove 移除库。使用该命令可以移除已安装的C++库。
    5. vcpkg update更新库。该命令会检查并更新vcpkg的库集合,使其与官方存储库保持同步。
    6. vcpkg upgrade升级库。使用该命令可以升级已安装的C++库到它们的最新版本。
    7. vcpkg list列出已安装的库。该命令会显示所有已安装的C++库及其版本信息。
    8. vcpkg integrate install集成vcpkg。该命令会将vcpkg工具链与项目的构建系统进行集成,以方便在项目中使用vcpkg安装的库。
    9. vcpkg integrate remove移除vcpkg与构建系统的集成。该命令会将vcpkg工具链从项目的构建系统中移除,以便项目不再依赖vcpkg安装的库。
    10. vcpkg export导出配置。该命令将生成一个vcpkg.json配置文件,其中包含项目所需的所有库及其版本信息,以便在其他机器上进行相同的配置。
    11. vcpkg help获取帮助。该命令会显示有关vcpkg命令和使用方法的帮助信息。
    12. vcpkg help command获取特定命令的帮助。使用该命令可以获取对特定命令的详细使用说明和示例。
    13. vcpkg upgrade --no-dry-run无提示升级库。使用该命令可以在不提示的情况下直接升级已安装的C++库到最新版本。
    14. vcpkg search --x-versions搜索所有可用的版本。该命令会显示库的所有可用版本,以帮助开发人员选择特定版本进行安装。
    15. vcpkg upgrade --recurse递归升级所有依赖。使用该命令可以递归地升级项目中已安装的所有库及其依赖项。
    16. vcpkg create 创建库。该命令可用于创建自定义C++库的vcpkg端口,并将其添加到vcpkg的库集合中。
    17. vcpkg contact联系vcpkg团队。使用该命令可以查看vcpkg团队的联系方式。
    18. vcpkg integrate powershell在PowerShell中集成vcpkg。该命令将vcpkg工具链与PowerShell的构建环境进行集成。
    19. vcpkg owns 确认库的归属。使用该命令可以查看哪些库是由vcpkg安装的,哪些是由其他方式安装的。
    20. vcpkg edit 编辑库的端口文件。该命令会在默认编辑器中打开指定库的端口文件,以便进行自定义配置。
    21. vcpkg list --x-versions列出所有可用版本。该命令会列出所有可用版本的库及其详细信息,以帮助开发人员选择特定版本进行安装。
    22. vcpkg cache显示库的缓存路径。使用该命令可以查看vcpkg缓存已下载的库二进制包的位置。
    23. vcpkg config管理vcpkg的配置。该命令允许开发人员配置和管理vcpkg的不同选项,如设置默认的安装路径、设置C++编译器等。
    24. vcpkg binarycache设置二进制包缓存路径。使用该命令可以修改vcpkg的二进制包缓存路径,以便在离线环境中使用已下载的二进制包进行安装。
  • 相关阅读:
    玩转 CMS2
    Dubbo API 笔记——Dubbo协议&最佳实践
    JS 中 对象 基础认识
    程序员的底层思维
    中英文说明书丨艾美捷细胞衰老β-半乳糖苷酶染色试剂盒
    云计算与数字化转型的关系,终于有人讲明白了
    源码构建LAMP环境-2
    计算机毕业设计ssm+vue基本微信小程序的客户资源管理系统
    Flink系列之Flink中Window原理及实践
    Celery笔记七之定时任务及crontab定义
  • 原文地址:https://blog.csdn.net/weixin_43729127/article/details/131056903