欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

跨平臺(tái)C++包管理利器vcpkg的完全指南

 更新時(shí)間:2025年06月04日 08:25:53   作者:JuicyActiveGilbert  
本文主要介紹了跨平臺(tái)C++包管理利器vcpkg的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一、核心特性與優(yōu)勢(shì)對(duì)比

1. vcpkg核心優(yōu)勢(shì)

特性說(shuō)明傳統(tǒng)方式痛點(diǎn)
自動(dòng)依賴解析遞歸安裝所有依賴項(xiàng)手動(dòng)解決依賴地獄
版本控制支持語(yǔ)義化版本和鎖定文件版本沖突頻繁
二進(jìn)制緩存重復(fù)使用已編譯包重復(fù)編譯耗時(shí)
跨平臺(tái)支持Windows/Linux/macOS統(tǒng)一管理平臺(tái)配置差異大
自定義編譯選項(xiàng)靈活配置編譯參數(shù)編譯選項(xiàng)不可控

2. 適用場(chǎng)景分析

  • ? 大型C++項(xiàng)目依賴管理
  • ? 多平臺(tái)持續(xù)集成(CI)環(huán)境
  • ? 開源項(xiàng)目統(tǒng)一構(gòu)建標(biāo)準(zhǔn)
  • ?? 需特定編譯器版本項(xiàng)目(需自定義triplet)

二、多平臺(tái)安裝配置

1. Windows安裝

# 管理員權(quán)限運(yùn)行
cd C:\DevTools
git clone https://github.com/microsoft/vcpkg
.\vcpkg\bootstrap-vcpkg.bat

注:如果出現(xiàn)下載失敗,也可以直接復(fù)制對(duì)話框中的下載地址手動(dòng)下載。下載完成后放入vcpkg文件夾中即可

# 配置系統(tǒng)環(huán)境變量
[系統(tǒng)屬性] → [環(huán)境變量] → 新建 VCPKG_ROOT = C:\dev\vcpkg
[系統(tǒng)屬性] → [環(huán)境變量] → path后面新增 %VCPKG_ROOT%

2. Linux/macOS安裝

git clone https://github.com/microsoft/vcpkg
cd vcpkg
./bootstrap-vcpkg.sh -useSystemBinaries

2.1 環(huán)境變量配置

# 添加至bashrc/zshrc
export VCPKG_ROOT=$HOME/vcpkg
export PATH=$VCPKG_ROOT:$PATH

# 驗(yàn)證安裝
vcpkg version

三、基礎(chǔ)操作命令大全

1. 包管理命令

# 搜索軟件包
vcpkg search boost

# 安裝x64庫(kù)
vcpkg install boost:x64-windows

# 刪除軟件包
vcpkg remove fmt --recurse

# 更新軟件包
vcpkg update
vcpkg upgrade --no-dry-run

2. 工程管理命令

# 生成編譯清單
vcpkg new --application myapp

# 導(dǎo)出編譯結(jié)果
vcpkg export boost --output=boost_1.83.0.zip --raw

# 集成到系統(tǒng)目錄
vcpkg integrate install

四、CMake項(xiàng)目集成實(shí)戰(zhàn)

1. 基礎(chǔ)集成方式

# CMakeLists.txt
set(CMAKE_TOOLCHAIN_FILE 
    ${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake
    CACHE STRING "Vcpkg toolchain file")

2. 依賴聲明文件

創(chuàng)建vcpkg.json:

{
  "name": "my-project",
  "version": "1.0.0",
  "dependencies": [
    {
      "name": "fmt",
      "version>=": "9.1.0"
    },
    {
      "name": "opencv",
      "features": ["contrib", "cuda"]
    }
  ]
}

3. 構(gòu)建命令示例

# 安裝manifest模式依賴
vcpkg install --triplet=x64-windows

# CMake構(gòu)建命令
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build

五、VS項(xiàng)目配置

1. 創(chuàng)建新項(xiàng)目

  • 新建 → Visual C++ → 控制臺(tái)應(yīng)用
  • 項(xiàng)目名稱:VcpkgDemo
  • 勾選"將解決方案和項(xiàng)目放在同一目錄"

2. 安裝本地庫(kù)

# 安裝所需庫(kù)(示例)
vcpkg install fmt:x64-windows-static spdlog:x64-windows-static

3. 項(xiàng)目屬性設(shè)置

  • 右鍵項(xiàng)目 → 屬性
  • 配置選擇"All Configurations"
  • 配置路徑:
    [C/C++] → 附加包含目錄 →
    $(VCPKG_ROOT)\installed\x64-windows-static\include
    [鏈接器] → 附加庫(kù)目錄 →
    $(VCPKG_ROOT)\installed\x64-windows-static\lib

4.代碼示例

#include <iostream>
#include <fmt/format.h>
#include <spdlog/spdlog.h>
#include <spdlog/sinks/basic_file_sink.h>

int main() {
    // 使用fmt格式化
    auto text = fmt::format("PI = {:.2f}", 3.1415926);
    
    // 控制臺(tái)日志
    spdlog::info("格式化結(jié)果: {}", text);
    
    // 文件日志
    try {
        auto logger = spdlog::basic_logger_mt("file_logger", "logs/app.log");
        logger->info("程序啟動(dòng)成功");
    }
    catch (const spdlog::spdlog_ex& ex) {
        std::cout << "日志初始化失敗: " << ex.what() << std::endl;
    }
    
    return 0;
}

3. 添加預(yù)編譯頭(可選)

// pch.h
#pragma once
#include <string>
#include <memory>

六、常見(jiàn)問(wèn)題解決方案

1. 錯(cuò)誤代碼速查表

錯(cuò)誤類型解決方案
找不到包更新端口目錄 git pull
依賴沖突使用版本約束 “version>=”
鏈接失敗檢查triplet的鏈接方式
下載超時(shí)設(shè)置鏡像源 X_VCPKG_ASSET_SOURCES

2.性能優(yōu)化建議

# 并行編譯(需ninja)
vcpkg install --x-install-root=out --x-use-aria2 --x-assert-usage

# 禁用文檔安裝
set(VCPKG_POLICY_EMPTY_PACKAGE enabled)

到此這篇關(guān)于跨平臺(tái)C++包管理利器vcpkg的完全指南的文章就介紹到這了,更多相關(guān)C++包管理利器vcpkg內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語(yǔ)言之單向鏈表詳解及實(shí)例代碼

    C語(yǔ)言之單向鏈表詳解及實(shí)例代碼

    這篇文章主要介紹了C語(yǔ)言之單向鏈表的相關(guān)資料,及實(shí)例代碼,幫助大家學(xué)習(xí)參考,,需要的朋友可以參考下
    2016-09-09
  • C++中cin>>n的返回值

    C++中cin>>n的返回值

    這篇文章主要介紹了C++中cin>>n的返回值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • C++實(shí)現(xiàn)班車管理系統(tǒng)課程設(shè)計(jì)

    C++實(shí)現(xiàn)班車管理系統(tǒng)課程設(shè)計(jì)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)班車管理系統(tǒng)課程設(shè)計(jì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C++實(shí)現(xiàn)大整數(shù)乘法

    C++實(shí)現(xiàn)大整數(shù)乘法

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)大整數(shù)乘法,使用笛卡爾相乘,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • C語(yǔ)言中fgets和fscanf區(qū)別詳解

    C語(yǔ)言中fgets和fscanf區(qū)別詳解

    這篇文章主要介紹了C語(yǔ)言中fgets和fscanf區(qū)別詳解的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家理解掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-10-10
  • C語(yǔ)言實(shí)現(xiàn)ATM機(jī)存取款系統(tǒng)

    C語(yǔ)言實(shí)現(xiàn)ATM機(jī)存取款系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)ATM機(jī)存取款系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • VisualStudio2022打包項(xiàng)目文件為.exe安裝包

    VisualStudio2022打包項(xiàng)目文件為.exe安裝包

    本文主要介紹了VisualStudio2022打包項(xiàng)目文件為.exe安裝包,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • C++實(shí)現(xiàn)文件逐行讀取與字符匹配的示例詳解

    C++實(shí)現(xiàn)文件逐行讀取與字符匹配的示例詳解

    這篇文章主要為大家詳細(xì)介紹了如何溧陽(yáng)C++實(shí)現(xiàn)文件逐行讀取與字符匹配的功能,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下
    2023-03-03
  • C++ 字符串去重排序?qū)嵗a

    C++ 字符串去重排序?qū)嵗a

    這篇文章主要介紹了C++ 字符串去重排序?qū)嵗a的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • C語(yǔ)言結(jié)構(gòu)體struct詳解

    C語(yǔ)言結(jié)構(gòu)體struct詳解

    C語(yǔ)言中,結(jié)構(gòu)體類型屬于一種構(gòu)造類型(其他的構(gòu)造類型還有:數(shù)組類型,聯(lián)合類型),下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言結(jié)構(gòu)體(struct)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09

最新評(píng)論