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 環(huán)境變量
# 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/
下載對(duì)應(yīng)平臺(tái)的包,解壓即可
ninja --version 1.12.1
使用
新建一個(gè)項(xiàng)目
# 創(chuàng)建項(xiàng)目目錄 mkdir helloworld && cd helloworld # 創(chuàng)建清單文件 vcpkg new --application # 添加 fmt 依賴(lài)項(xiàng) vcpkg add port fmt
創(chuàng)建必要的文件
創(chuàng)建文件 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": {}
}
]
}創(chuàng)建文件 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)
創(chuàng)建文件 helloworld.cpp
#include <fmt/core.h>
int main()
{
fmt::print("Hello World!\n");
return 0;
}編譯并運(yùn)行項(xiàng)目
# 使用 CMake 配置生成 cmake --preset=default # 生成項(xiàng)目 cmake --build build # 運(yùn)行應(yīng)用程序 ./build/HelloWorld Hello World!
為了便捷,可以創(chuàng)建文件 Makefile
.PONEY: run
run:
cmake --build build && ./build/HelloWorld以后只要運(yùn)行如下命令即可
make run
最終的項(xiàng)目文件
$ tree . ├── CMakeLists.txt ├── CMakePresets.json ├── CMakeUserPresets.json ├── Makefile ├── helloworld.cpp ├── vcpkg-configuration.json └── vcpkg.json
到此這篇關(guān)于C++包管理器vcpkg的使用的文章就介紹到這了,更多相關(guān)C++包管理器vcpkg內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
將C++程序打包成SO庫(kù)并調(diào)用的詳細(xì)流程
在 Linux 系統(tǒng)中,SO(Shared Object)是動(dòng)態(tài)鏈接庫(kù),類(lèi)似于 Windows 的 DLL,將 C++ 程序打包為 SO 庫(kù)可以實(shí)現(xiàn)代碼復(fù)用、隱藏實(shí)現(xiàn)細(xì)節(jié),并支持動(dòng)態(tài)加載,以下是詳細(xì)的打包與調(diào)用流程,需要的朋友可以參考下2025-11-11
Sublime Text 3 實(shí)現(xiàn)C++代碼的編譯和運(yùn)行示例
下面小編就為大家?guī)?lái)一篇Sublime Text 3 實(shí)現(xiàn)C++代碼的編譯和運(yùn)行示例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09
圖解C++的STL之stack和queue,輕松理解數(shù)據(jù)結(jié)構(gòu)
聚焦?C++?的?STL?中的?stack?和?queue,讓數(shù)據(jù)結(jié)構(gòu)變得簡(jiǎn)單有趣!?通過(guò)圖解的方式,我們將輕松理解這兩個(gè)重要的數(shù)據(jù)結(jié)構(gòu),準(zhǔn)備好開(kāi)啟?STL?學(xué)習(xí)之旅了嗎?讓我們一起探索?stack?和?queue?的奧秘吧!2024-03-03
C++實(shí)現(xiàn)與Lua相互調(diào)用的示例詳解
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)與Lua相互調(diào)用的方法,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下2023-03-03
實(shí)現(xiàn)posix消息隊(duì)列示例分享
這篇文章主要介紹了實(shí)現(xiàn)posix消息隊(duì)列示例,學(xué)習(xí)記錄鎖,線程互斥量,線程條件變量,內(nèi)存映射,信號(hào),線程的綜合應(yīng)用,需要的朋友可以參考下2014-02-02
程序員都不知道C語(yǔ)言中的這些小細(xì)節(jié)
本文通過(guò)7到實(shí)例題目給大家展示C語(yǔ)言中的一些小細(xì)節(jié),很少有朋友真正的掌握,感興趣的朋友跟隨小編一起看看吧2021-05-05

