vcpkg的简单使用

vcpkg的使用

这篇文章是介绍下vcpkg的使用,为啥是vcpkg,这个就不说了,用过的都说好,我们配合vscode和cmake来使用这个c++的包管理器,我们将会通过一个简单的例子来介绍怎么使用,(本来是不打算写了,因为官网的文档不错,但是过了一段时间后发现再使用vcpkg发现不会用了,因此记录下吧)

配置vcpkg的环境

git下来vcpkg的源码(需要使用魔法才能上网)

git clone https://github.com/microsoft/vcpkg.git

然后执行下下面的命令

cd vcpkg
./bootstrap-vcpkg.sh

执行完后,vcpkg就安装完成了,下面就是设置下环境变量了,这里是linux的环境变量,这里我直接将语句添加到了~/.bashrc,语句如下

export VCPKG_ROOT=//path/vcpkg
export PATH=$PATH:$VCPKG_ROOT

然后就可以直接使用vcpkg命令了,这里需要source ~/.bashrc下,激活下环境变量就行

使用vcpkg

下面就是使用vcpkg了,使用起来还是非常简单的,下面我来简单介绍下,这里的背景就是我们的项目使用到了fmt这个第三方库,如果我们不使用vcpkg的话,就需要自己安装fmt,下载源码、编译源码然后安装,还是挺麻烦的,这里我们看下vcpkg怎么简化流程

首先我们进入项目根目录,这里假设项目目录是cppCmakeVcpkg,下面就是一些命令

cd cppCmakeVcpkg
vcpkg new --application
vcpkg add port fmt

执行完命令后,根目录就会多出两个文件vcpkg-configuration.json, vcpkg.json,我们看内容就可以看出,vcpkg.json就是我们依赖的包,然后我们需要配置下CMakePresets.json这里来配置一些信息,主要是CMAKE_TOOLCHAIN_FILE字段,用来配置vcpkg工具链的路径位置的,比我我们简单的样例

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

这样就搞好了,可以直接进行build了,可以使用命令行,也可以直接使用vscode,他会直接下载fmt包直接在项目中使用,第一次构建会慢一点,因为需要配置fmt第三方包,后面的构建就快了。

源代码

helloworld.cpp

#include <fmt/core.h>
#include <iostream>

int main()
{
    fmt::print("Hello World!\n");
    return 0;
}

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)

vcpkg作为cpp的包管理器还是可以的,好用也不难,在实习期间了解到的工具,大家可以使用下,后面我还会介绍下bazel这个包管理器,因为我看项目的时候看到这个工具了,大型项目都用。

### vcpkg使用指南 #### 安装和配置 vcpkg 要安装和配置 vcpkg,首先需要克隆其仓库并完成初始化过程。如果尚未安装 vcpkg,则可以通过以下命令实现这一目标: ```bash git clone https://github.com/microsoft/vcpkg cd vcpkg ./bootstrap-vcpkg.sh # 对于 Linux/MacOS 用户 .\bootstrap-vcpkg.bat # 对于 Windows 用户 ``` 随后,为了使 vcpkg 能够集成到开发环境中,运行以下命令以启用全局工具链文件支持[^2]: ```bash ./vcpkg integrate install ``` 这一步会修改用户的 CMake 配置,使得任何通过 `find_package` 命令调用的包都能自动找到由 vcpkg 提供的库。 --- #### 使用 vcpkg 安装依赖库 一旦完成了上述设置,就可以利用 vcpkg 来管理项目的第三方依赖项。例如,假设项目需要 libusb 库,那么只需执行如下命令即可完成安装: ```bash ./vcpkg install libusb ``` 对于特定平台的支持(如静态编译),也可以指定三元组来满足需求。比如,在 Windows 平台上构建静态链接版本的库时,可采用以下方式: ```bash ./vcpkg install xxx:x86-windows-static ``` 这里,“xxx”代表实际所需的库名称[^3]。 --- #### 示例项目中的应用 当涉及到具体的应用场景时,考虑 RabbitMQ-C 这样的消息队列客户端库作为例子。假如开发者正在编写一个简单的生产者程序,那么除了正常编码之外,还需要确保正确地链接该库。此时可以借助 vcpkg 所提供的便利性简化流程——先按照前述方法引入 RabbitMQ-C,之后再依据官方指导完成最终编译操作: ```bash gcc producer.c -o producer -lrabbitmq ``` 此命令假定已成功设置了环境变量 PATH 和 LD_LIBRARY_PATH 等必要参数以便定位动态共享对象(.so 文件)[^5]。 --- #### 获取更多帮助信息 最后值得一提的是,任何时候如果遇到不确定之处或者想要了解某个功能的具体细节,都可以随时求助内置的帮助文档系统。只需要简单输入相应指令就能获得详尽解答: ```bash ./vcpkg help ``` 或者是针对某条单独命令请求解释说明: ```bash ./vcpkg help [command] ``` 以上便是围绕如何高效运用 vcpkg 展开讨论的内容概述[^1]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值