C++包管理器vcpkg的使用
文档
https://learn.microsoft.com/zh-cn/vcpkg/get_started/get-started?pivots=shell-bash
搜索想要的包
https://vcpkg.io/en/packages?query=
安装vcpkg
1、获取源码
git clone https://github.com/microsoft/vcpkg.git cd vcpkg && ./bootstrap-vcpkg.sh
2、配置 VCPKG_ROOT 环境变量
# cat ~/.bash_profile # vcpkg export VCPKG_ROOT=/usr/local/vcpkg export PATH=$VCPKG_ROOT:$PATH
3、安装检查
$ vcpkg --version vcpkg package management program version 2025-06-02-145689e84b7637525510e2c9b4ee603fda046b56 See LICENSE.txt for license information.
安装ninja
https://ninja-build.org/
下载对应平台的包,解压即可
ninja --version 1.12.1
使用
新建一个项目
# 创建项目目录 mkdir helloworld && cd helloworld # 创建清单文件 vcpkg new --application # 添加 fmt 依赖项 vcpkg add port fmt
创建必要的文件
创建文件 CMakePresets.json
{
"version": 2,
"configurePresets": [
{
"name": "vcpkg",
"generator": "Ninja",
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
}
}
]
}CMakeUserPresets.json
{
"version": 2,
"configurePresets": [
{
"name": "default",
"inherits": "vcpkg",
"environment": {}
}
]
}创建文件 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)
创建文件 helloworld.cpp
#include <fmt/core.h>
int main()
{
fmt::print("Hello World!\n");
return 0;
}编译并运行项目
# 使用 CMake 配置生成 cmake --preset=default # 生成项目 cmake --build build # 运行应用程序 ./build/HelloWorld Hello World!
为了便捷,可以创建文件 Makefile
.PONEY: run
run:
cmake --build build && ./build/HelloWorld以后只要运行如下命令即可
make run
最终的项目文件
$ tree . ├── CMakeLists.txt ├── CMakePresets.json ├── CMakeUserPresets.json ├── Makefile ├── helloworld.cpp ├── vcpkg-configuration.json └── vcpkg.json
到此这篇关于C++包管理器vcpkg的使用的文章就介绍到这了,更多相关C++包管理器vcpkg内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Sublime Text 3 实现C++代码的编译和运行示例
下面小编就为大家带来一篇Sublime Text 3 实现C++代码的编译和运行示例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-09-09
图解C++的STL之stack和queue,轻松理解数据结构
聚焦 C++ 的 STL 中的 stack 和 queue,让数据结构变得简单有趣! 通过图解的方式,我们将轻松理解这两个重要的数据结构,准备好开启 STL 学习之旅了吗?让我们一起探索 stack 和 queue 的奥秘吧!2024-03-03


最新评论