VCPKG安裝和使用教程(經(jīng)驗總結(jié))
1. 安裝
去GitHub上下載源碼,然后點擊安裝腳本就可以了。
先決條件:
- Windows 7 或更高版本
- 用于 Windows 的 Git
安裝過程:
- vcpkg的GitHub主頁在這里:https://github.com/microsoft/vcpkg
- Visual Studio 2015 更新 3 或更高版本(帶英文語言包)
- 在“命令提示符”窗口中,為 vcpkg 的克隆實例創(chuàng)建目錄。 如果打算為不同的生成目標(biāo)安裝庫,最好在目錄名稱中包含目標(biāo)。 建議使用短路徑名稱(不含空格)(如
C:\src\win32\或C:\dev\iot\),否則,某些端口生成系統(tǒng)可能會出現(xiàn)路徑問題 。 在命令窗口中,切換到剛剛創(chuàng)建的目錄。 - 從 GitHub 克隆 vcpkg 存儲庫:https://github.com/Microsoft/vcpkg。
git clone https://github.com/microsoft/vcpkg
此命令在 vcpkg 子目錄中創(chuàng)建存儲庫的本地副本。 此位置是此 vcpkg 克隆的 vcpkg 根目錄。
下載完成后,在“命令提示符”窗口切換到 vcpkg 目錄。
在 vcpkg 根目錄下,運行 vcpkg 引導(dǎo)程序命令:
bootstrap-vcpkg.bat
引導(dǎo)程序?qū)⑹褂?Microsoft C/C++ 工具、庫和 Windows SDK 的位置配置 vcpkg。
更新 vcpkg
vcpkg 包管理器在 GitHub 上定期更新。 若要將 vcpkg 的克隆更新到最新版本,請從 vcpkg 根目錄運行 git pull。 此命令會將 vcpkg 的副本與 GitHub 上的版本同步。 下載完成后,再次運行引導(dǎo)程序。 引導(dǎo)程序會重新生成 vcpkg 程序,但保留已安裝的庫。
卸載 vcpkg
若要卸載 vcpkg,只需刪除 vcpkg 目錄。 刪除此目錄會卸載 vcpkg 分發(fā)以及 vcpkg 已安裝的所有庫。
但是,如果已執(zhí)行 vcpkg integrate install,則應(yīng)執(zhí)行 vcpkg integrate remove 來確保在刪除文件夾之前已清理集成 。
2. 使用
命令
| Command | 描述 |
|---|---|
vcpkg search [pat] | 搜索可安裝的包 |
vcpkg install <pkg>... | 安裝包 |
vcpkg remove <pkg>... | 卸載包 |
vcpkg remove --outdated | 卸載所有過期包 |
vcpkg list | 列出已安裝的包 |
vcpkg update | 顯示用于更新的包列表 |
vcpkg upgrade | 重新生成所有過期包 |
vcpkg hash <file> [alg] | 通過特定算法對文件執(zhí)行哈希操作,默認為 SHA512 |
vcpkg integrate install | 使已安裝包在用戶范圍內(nèi)可用。 首次使用時需要管理權(quán)限 |
vcpkg integrate remove | 刪除用戶范圍的集成 |
vcpkg integrate project | 為使用單個 VS 項目生成引用 NuGet 包 |
vcpkg export <pkg>... [opt]... | 導(dǎo)出包 |
vcpkg edit <pkg> | 打開端口進行編輯(使用 %EDITOR%,默認為“code”) |
vcpkg create <pkg> <url> [archivename] | 創(chuàng)建新程序包 |
vcpkg cache | 列出緩存的已編譯包 |
vcpkg version | 顯示版本信息 |
vcpkg contact --survey | 顯示聯(lián)系信息,以便發(fā)送反饋。 |
選項
| 選項 | 描述 |
|---|---|
--triplet <t> | 指定目標(biāo)體系結(jié)構(gòu)三元組。 (默認:%VCPKG_DEFAULT_TRIPLET%,另請參閱 vcpkg help triplet) |
--vcpkg-root <path> | 指定 vcpkg 根目錄(默認:%VCPKG_ROOT%) |
3. 集成vcpkg
Windows 上的 Visual Studio 集成
從 vcpkg 根目錄,運行 vcpkg integrate install來配置 Visual Studio,以便按用戶找到所有 vcpkg 頭文件和二進制文件。 無需在 Visual Studio 中編輯 VC + + 目錄路徑。 如果有多個 vcpkg 克隆,則你從中運行此命令的克隆將成為新的默認位置。
現(xiàn)在,只需鍵入文件夾/標(biāo)頭名稱即可輕松加入標(biāo)頭,并且自動完成功能將幫助你完成這一切。 無需執(zhí)行任何額外的步驟即可鏈接到庫或添加項目引用。 下圖演示了 Visual Studio 查找 azure-storage-cpp 標(biāo)頭的方法。 Vcpkg 將其標(biāo)頭置于 /installed 子文件夾中,由目標(biāo)平臺予以分區(qū)。 下圖顯示庫的 /was 子文件夾中包含文件的列表:

Linux 或 macOS 上的 Visual Studio Code 集成
在 shell 或“終端”窗口中,將目錄更改為 vcpkg 根目錄。 然后運行./vcpkg integrate install,在 Linux 或 macOS 上配置 Visual Studio Code。 此命令將設(shè)置 vcpkg 工具和庫的位置,并對源文件啟用 IntelliSense。
刪除 vcpkg 集成
如果已使用 integrate 選項,則應(yīng)在刪除 vcpkg 實例之前刪除該集成。 若要刪除和清理該集成,請將目錄更改為 vcpkg 根目錄。
- 在 Windows 上,運行
vcpkg integrate remove,確保清除該集成。 - 在 Linux 或 macOS 上,運行
./vcpkg integrate remove命令。
使用舉例
我現(xiàn)在的場景是我需要 libpng 來進行開發(fā),輸入命令:vcpkg install libpng來安裝,可以看到他在開始自動下載。
注意我們可以使用.\vcpkg help triplet來看庫支持的模式。

4. 詳細介紹
4.1 新增庫
使用指令:vcpkg help triplet可以看到都支持什么平臺。
下載某一個平臺的包:.\vcpkg.exe install jsoncpp:x64-windows
(base) PS C:\Users\cds> vcpkg help triplet Available architecture triplets VCPKG built-in triplets: arm-uwp arm64-windows x64-linux x64-osx x64-uwp x64-windows-static x64-windows x86-windows VCPKG community triplets: arm-ios arm-linux arm-mingw-dynamic arm-mingw-static arm-windows arm64-ios arm64-linux arm64-mingw-dynamic arm64-mingw-static arm64-osx arm64-uwp arm64-windows-static-md arm64-windows-static ppc64le-linux s390x-linux wasm32-emscripten x64-ios x64-mingw-dynamic x64-mingw-static x64-openbsd x64-osx-dynamic x64-windows-static-md x86-freebsd x86-ios x86-mingw-dynamic x86-mingw-static x86-uwp x86-windows-static-md x86-windows-static x86-windows-v120
4.2 刪除庫
.\vcpkg.exe remove jsoncpp
注意:
這個時候只是移除了默認的x86-winodws版本的文件,如果有其他平臺的版本需要移除,需要制定相應(yīng)的triplet。
移除也只是移除了二進制程序庫而已,源碼包和解壓縮的源碼并沒有刪除。
4.3 查看已經(jīng)安裝的列表
.\vcpkg.exe list
4.4 更新已經(jīng)安裝的開源庫
一般有兩種更新方式。一個是update指令,可以顯示可以升級的開源庫的列表。另一個是upgrade的指令,會重新編譯所有需要更新的包。
到此這篇關(guān)于VCPKG安裝和使用教程的文章就介紹到這了,更多相關(guān)VCPKG安裝使用教程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
學(xué)好C++必須做到的50條 絕對經(jīng)典!
學(xué)好C++必須做到的50條,絕對經(jīng)典!想要學(xué)好C++的朋友一定要認真閱讀本文,更要做到以下50條2016-09-09
C C++算法題解LeetCode1408數(shù)組中的字符串匹配
這篇文章主要為大家介紹了C C++算法題解LeetCode1408數(shù)組中的字符串匹配示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10

