newcoderlife

vcpkg 试用小计
本文记录了我使用 vcpkg 在 Windows 上搭建 C++ 开发环境的经历。安装之前vcpkg 作为一个 C...
扫描右侧二维码阅读全文
05
2018/10

vcpkg 试用小计

本文记录了我使用 vcpkg 在 Windows 上搭建 C++ 开发环境的经历。

安装之前

vcpkg 作为一个 C/C++ 的包管理器,依赖 CMake 构建编译项目,在 Windows 下使用 Visual Studio 作为编译器。在安装 Visual Studio 的时候,需要勾选 “C++ for Desktop” 的选项。在安装 CMake 的时候,建议加入 PATH。

安装

vcpkg 的安装过程较为简陋。要知道在 yarn 安装都需要安装包的年代,vcpkg 还只是简单的 clone + run 就有点说不过去了。

首先将 vcpkg 克隆到本地,运行如下命令:

git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
.\bootstrap-vcpkg.bat
.\vcpkg integrate install # 安装用户命令补全
.\vcpkg integrate powershell # 安装 Tab 补全

如果希望可以全局使用 vcpkg 命令,可以选择把 vcpkg 目录加入到系统 PATH。

使用

以下是微软官方的 vcpkg 命令列表:

命令 描述
vcpkg search [pat] 搜索可安装的包
vcpkg install <pkg>... 安装包
vcpkg remove <pkg>... 卸载包
vcpkg remove --outdated 卸载所有过期包
vcpkg list 列出已安装的包
vcpkg update 显示用于更新的包列表
vcpkg upgrade 重新生成所有过期包
vcpkg hash <file> [alg] 通过特定算法对文件执行哈希操作,默认为 SHA512
vcpkg integrate install 使已安装包在用户范围内可用。 首次使用时需要管理权限
vcpkg integrate remove 删除用户范围的集成
vcpkg integrate project 为使用单个 VS 项目生成引用 NuGet 包
vcpkg export <pkg>... [opt]... 导出包
vcpkg edit <pkg> 打开端口进行编辑(使用 %EDITOR%,默认为 code
vcpkg create <pkg> <url> [archivename] 创建新程序包
vcpkg cache 列出缓存的已编译包
vcpkg version 显示版本信息
vcpkg contact --survey 显示联系信息,以便发送反馈。

还有我也看不懂的选项:

选项 描述
--triplet <t> 指定目标体系结构三元组。 (默认:%VCPKG_DEFAULT_TRIPLET%,另请参阅 vcpkg help triplet
--vcpkg-root <path> 指定 vcpkg 根目录(默认:%VCPKG_ROOT%

编写 CMakeLists.txt

CMake 采用 CMakeLists.txt 来管理项目。CMakeLists.txt 就像是 GNU 那一套构建系统里的 makefile,里面填写了本项目如何编译和连接等信息。

要想在 Windows 下的 CMake 项目里使用通过 vcpkg 安装的包,我们要在项目的 CMakeLists.txt 里加入如下内容:

set(CMAKE_TOOLCHAIN_FILE "<vcpkg-path>/scripts/buildsystems/vcpkg.cmake")

注意,这一句应该加在 project 语句之前。据官方解释应该是在配置此 project 之前就要制定 toolchain 相关信息。

在执行 cmake 命令时加入参数

如果我们不想改变 CMakeLists.txt 的文件内容,又想使用相关的包,可以通过加入命令行参数来解决。相关命令如下:

cd <project-build-dir>
cmake <project-root> -DCMAKE_TOOLCHAIN_FILE="<vcpkg-path>/scripts/buildsystems/vcpkg.cmake"

是不是很方便呢?

Last modification:May 30th, 2019 at 07:47 pm
点击广告投喂博主 以获得更快的访问速度!

Leave a Comment