Vcpkg簡介(VC+Package包管理工具)(微軟開發的)


Vcpkg: 總覽 

VCPkg與CMake的關系:為Visual Studio編譯器而生。

在windows平台下開發C++程序時,有一個很大的痛點。那就是,dll有的是32位,有的是64位,有的VS2008,有的VS2010,導致令人雲里霧里。為了避免這個問題,往往需要一個統一的庫,存儲個個版本的dll,lib。這很不方便。從源碼編譯則可以避免這個問題。

vcpkg 是微軟 C++ 團隊開發適用於Windows,Linux 和 MacOS 的 C ++庫管理器。

vcpkg 自身也是使用 C++ 開發的 (而其他的 C++ 包管理大多並不是 C++ 開發的),並且 vcpkg 能夠幫助用戶在 Visual Studio 中更好地使用這些安裝好的庫。

vcpkg 整合了 git,構建系統整合的 CMake,而絕大多數的 C++ 項目都可以直接或者間接的方式使用 CMake 創建原生項目文件並構建。

參考文獻:https://blog.csdn.net/cjmqas/article/details/79282847  https://zhuanlan.zhihu.com/p/87391067

English Overview

Vcpkg 可幫助您在 Windows、 Linux 和 MacOS 上管理 C 和 C++ 庫。 這個工具和生態鏈正在不斷發展,我們一直期待您的貢獻!

若您從未使用過vcpkg或希望了解如何使用vcpkg,請查閱快速開始章節。

如需獲取有關可用命令的簡短描述,請在編譯vcpkg后執行 vcpkg help 或執行 vcpkg help [command] 來獲取具體的幫助信息。

當前生成狀態

目錄

入門

首先,請閱讀以下任一方面的快速入門指南: Windows 或 macOS和Linux, 這取決於您使用的是什么平台。

有關更多信息,請參見 安裝和使用軟件包。 如果vcpkg目錄中沒有您需要的庫, 您可以 在GitHub上打開問題。 vcpkg團隊和貢獻者可以看到它的地方, 並可能將這個庫添加到vcpkg。

安裝並運行vcpkg后, 您可能希望將 TAB補全 添加到您的Shell中。

最后,如果您對vcpkg的未來感興趣,請查看 清單! 這是一項實驗性功能,可能會出現錯誤。 因此,請嘗試一下並打開所有問題!

快速開始: Windows

需求:

首先,請下載vcpkg並執行 bootstrap.bat 腳本。 它可以安裝在任何地方,但是通常我們建議您使用 vcpkg 作為 CMake 項目的子模塊,並將其全局安裝到 Visual Studio 項目中。 我們建議您使用例如 C:\src\vcpkg 或 C:\dev\vcpkg 的安裝目錄,否則您可能遇到某些庫構建系統的路徑問題。

> git clone https://github.com/microsoft/vcpkg
> .\vcpkg\bootstrap-vcpkg.bat

使用以下命令安裝您的項目所需要的庫:

> .\vcpkg\vcpkg install [packages to install]

您也可以使用 search 子命令來查找vcpkg中集成的庫:

> .\vcpkg\vcpkg search [search term]

若您希望在 Visual Studio 中使用vcpkg,請運行以下命令 (首次啟動需要管理員權限)

> .\vcpkg\vcpkg integrate install

在此之后,您可以創建一個非cmake項目 (或打開已有的項目)。 在您的項目中,所有已安裝的庫均可立即使用 #include 包含您需使用的庫的頭文件並無需添加額外配置。

若您在 Visual Studio 中使用cmake工程,請查閱這里

為了在IDE以外在cmake中使用vcpkg,您需要使用以下工具鏈文件:

> cmake -B [build directory] -S . -DCMAKE_TOOLCHAIN_FILE=[path to vcpkg]/scripts/buildsystems/vcpkg.cmake
> cmake --build [build directory]

在cmake中,您仍需通過 find_package 來使用第三方庫。 請查閱 CMake 章節 獲取更多信息,其中包含了在IDE中使用cmake的內容。

對於其他工具 (包括Visual Studio Code),請查閱 集成指南

快速開始: Unix

Linux平台的使用需求:

macOS平台的使用需求:

首先,請下載vcpkg並執行 bootstrap.sh 腳本。 我們建議您將vcpkg作為cmake項目的子模塊使用。

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

使用以下命令安裝任意包:

$ ./vcpkg/vcpkg install [packages to install]

您也可以使用 search 子命令來查找vcpkg中已集成的庫:

$ ./vcpkg/vcpkg search [search term]

為了在cmake中使用vcpkg,您需要使用以下工具鏈文件:

$ cmake -B [build directory] -S . -DCMAKE_TOOLCHAIN_FILE=[path to vcpkg]/scripts/buildsystems/vcpkg.cmake
$ cmake --build [build directory]

在cmake中,您仍需通過 find_package 來使用第三方庫。 為了您更好的在cmake或 VSCode CMake Tools 中使用vcpkg, 請查閱 CMake 章節 獲取更多信息, 其中包含了在IDE中使用cmake的內容。

對於其他工具,請查閱 集成指南

安裝 Linux Developer Tools

在Linux的不同發行版中,您需要安裝不同的工具包:

  • Debian,Ubuntu,popOS或其他基於 Debian 的發行版:
$ sudo apt-get update
$ sudo apt-get install build-essential tar curl zip unzip
  • CentOS
$ sudo yum install centos-release-scl
$ sudo yum install devtoolset-7
$ scl enable devtoolset-7 bash

對於其他的發行版,請確保已安裝 g++ 6 或更新的版本。 若您希望添加特定發行版的說明,請提交一個 PR!

安裝 macOS Developer Tools

在 macOS 10.15 中,唯一需要做的是在終端中運行以下命令:

$ xcode-select --install

然后按照出現的窗口中的提示進行操作。

在 macOS 10.14 及先前版本中,您也需要使用 homebrew 安裝 g++。 請遵循以下部分中的說明:

在 macOS 10.15 之前版本中安裝 GCC

此條只在您的macOS版本低於 10.15 時是必須的。 安裝homebrew應當很輕松,請查閱 <brew.sh> 以獲取更多信息。 為了更簡便,請使用以下命令:

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

然后,為了獲取最新版本的gcc,請運行以下命令:

$ brew install gcc

此時,您就可以使用 bootstrap.sh 編譯vcpkg了。 請參閱 快速開始

在 CMake 中使用 vcpkg

若您希望在CMake中使用vcpkg,以下內容可能幫助您:

Visual Studio Code 中的 CMake Tools

將以下內容添加到您的工作區的 settings.json 中將使CMake Tools自動使用vcpkg中的第三方庫:

{
  "cmake.configureSettings": { "CMAKE_TOOLCHAIN_FILE": "[vcpkg root]/scripts/buildsystems/vcpkg.cmake" } }

Visual Studio CMake 工程中使用 vcpkg

打開CMake設置選項,將 vcpkg toolchain 文件路徑在 CMake toolchain file 中:

[vcpkg root]/scripts/buildsystems/vcpkg.cmake

CLion 中使用 vcpkg

打開 Toolchains 設置 (File > Settings on Windows and Linux, CLion > Preferences on macOS), 並打開 CMake 設置 (Build, Execution, Deployment > CMake)。 最后在 CMake options 中添加以下行:

-DCMAKE_TOOLCHAIN_FILE=[vcpkg root]/scripts/buildsystems/vcpkg.cmake

遺憾的是,您必須手動將此選項加入每個項目配置文件中。

將 vcpkg 作為一個子模塊

當您希望將vcpkg作為一個子模塊加入到您的工程中時, 您可以在第一個 project() 調用之前將以下內容添加到 CMakeLists.txt 中, 而無需將 CMAKE_TOOLCHAIN_FILE 傳遞給cmake調用。

set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/vcpkg/scripts/buildsystems/vcpkg.cmake CACHE STRING "Vcpkg toolchain file")

使用此種方式可無需設置 CMAKE_TOOLCHAIN_FILE 即可使用vcpkg,且更容易完成配置工作。

Tab補全/自動補全

vcpkg 支持命令,包名稱,以及 Powershell 和 Bash 中的選項。 若您需要在指定的 shell 中啟用Tab補全功能,請依據您使用的shell運行:

> .\vcpkg integrate powershell

$ ./vcpkg integrate bash

然后重新啟動控制台。

示例

請查看 文檔 獲取具體示例, 其包含 安裝並使用包, 使用壓縮文件添加包 和 從GitHub源中添加一個包

我們的文檔現在也可以從 ReadTheDocs 在線獲取。

觀看4分鍾 demo視頻

貢獻者

Vcpkg是一個開源項目,並通過您的貢獻不斷發展。 下面是一些您可以貢獻的方式:

請參閱我們的 貢獻准則 了解更多詳細信息。

該項目采用了 Microsoft開源行為准則。 獲取更多信息請查看 行為准則FAQ 或聯系 opencode@microsoft.com提出其他問題或意見。

License

在此存儲庫中使用的代碼均遵循 MIT License

數據收集

vcpkg會收集使用情況數據,以幫助我們改善您的體驗。 Microsoft收集的數據是匿名的。 您也可以通過使用 -disableMetrics 、在命令行上將--disable-metrics傳遞給vcpkg,或通過設置環境變量 VCPKG_DISABLE_METRICS 並重新運行 bootstrap-vcpkg 腳本來選擇禁用數據收集。 請在 privacy.md 中了解有關 vcpkg 數據收集的更多信息。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM