Vcpkg包管理器使用

Vcpkg包管理器使用

写在前面

​ vcpkg 是 Microsoft 和 C++ 社区维护的免费开放源代码 C/C++ 包管理器。 它于 2016 年推出,可帮助开发人员将项目迁移到较新版本的 Visual Studio。 vcpkg 已演变成 Windows、macOS 和 Linux 上开发人员使用的跨平台工具。 vcpkg 拥有大量开放源代码库和企业就绪功能,旨在通过支持任何构建和项目系统来促进开发过程。 vcpkg 是核心的 C++ 工具,使用 CMake 中的脚本以 C++ 语言编写。 它从头开始设计,以解决 C/C++ 开发人员体验的独特难点。

  • 测试环境:Win11 + Vs2015 + CMake3.28.0-rc3

下载安装

安装

  • 官方建议将vcpkg安装在C:\src\vcpkgC:\dev\vcpkg ,否则可能遇到某些库构建系统的路径问题。这个路径称为Vcpkg根目录
  • 导航到vcpkg目录下,运行bootstrap-vcpkg.bat脚本,会自动下载 vcpkg.exe
cd vcpkg && bootstrap-vcpkg.bat

使用

  • vcpkg中有两种模式,经典和清单模式;在经典模式下,vcpkg 维护由单个 vcpkg installvcpkg remove命令生成的 vcpkg 实例中的中心已安装树。 然后,此中心包集可由任意数量的项目共享。清单模式使用声明性 JSON 文件来描述有关项目或包的元数据。 在任何情况下,该文件的名称都的 vcpkg.json
  • 清单模式实际使用时是将库下载并编译到项目目录下,因此可以区分不同的库的不同版本。

安装库

  • 我们这里以fmt库为例子,执行以下命令后会下载对应版本的源码并编译为库。
vcpkg install fmt:x64-windows

在Vs中使用

  • 同为微软的东西,vcpkgVs的适配度非常高可直接在vcpkg目录下使用以下命令集成到Vs

    # 集成到Vs中
    vcpkg integrate install
    # 取消集成
    vcpkg integrate remove
    
  • 执行以上命令后,通过vcpkg安装的库,可在Vs中的源码直接访问头文件,并且不需要手动链接.lib;如果是动态库会自动将.dll拷贝到.exe可执行目录下。

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

在CMake中使用

  • 同样我们以fmt库为例。

  • 如何是CMake项目,则需要在CMake的主CMakeLists.txt文件的project() 前加上以下设置。将[vcpkg root] 换成自己的vcpkg根目录。

    set(CMAKE_TOOLCHAIN_FILE "[vcpkg root]/scripts/buildsystems/vcpkg.cmake" CACHE STRING "Vcpkg toolchain file")
    
  • 查找、链接库

    # 查找库
    find_package(FMT REQUIRED)
    
    # 链接库
    target_link_libraries(${PROJECT_NAME} PRIVATE FMT::fmt)
    

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值