教學課程:在Visual Studio中搭配 MSBuild 安裝和使用套件
本教學課程說明如何建立C++ “Hello World” 程式,以搭配 MSBuild、vcpkg 和 Visual Studio 使用 fmt
連結庫。 您將安裝相依性、設定專案、建置和執行簡單的應用程式。
必要條件
- 具有C++開發工作負載的Visual Studio
- Git
- Windows 7 或更新版本
1 - 設定 vcpkg
複製存放庫
第一個步驟是從 GitHub 複製 vcpkg 存放庫。 存放庫包含可取得 vcpkg 可執行文件的腳本,以及 vcpkg 社群所維護之策劃開放原始碼連結庫的登錄。 若要這樣做,請執行:
git clone https://github.com/microsoft/vcpkg.git
vcpkg 策展登錄是一組超過 2,000 個開放原始碼連結庫。 這些連結庫已由 vcpkg 的持續整合管線進行驗證,以共同運作。 雖然 vcpkg 存放庫不包含這些連結庫的原始程式碼,但它會保存配方和元數據,以在您的系統中建置並安裝它們。
執行啟動程式腳本
既然您已複製 vcpkg 存放庫,請瀏覽至
vcpkg
目錄並執行啟動程式腳本:cd vcpkg && bootstrap-vcpkg.bat
cd vcpkg; .\bootstrap-vcpkg.bat
cd vcpkg && ./bootstrap-vcpkg.sh
啟動程式腳本會執行必要條件檢查,並下載 vcpkg 可執行檔。
介紹完畢 vcpkg 已設定且可供使用。
與 Visual Studio MSBuild 整合
下一個步驟是啟用全使用者 vcpkg 整合,這可讓 MSBuild 知道 vcpkg 的安裝路徑。
執行
.\vcpkg.exe integrate install
其會輸出:
All MSBuild C++ projects can now #include any installed libraries. Linking will be handled automatically. Installing new libraries will make them instantly available.
2 - 設定 Visual Studio 專案
建立 Visual Studio 專案
使用 「主控台應用程式」範本在 Visual Studio 中建立新專案
Visual Studio UI 的螢幕快照,其中顯示如何在 Visual Studio 中建立新的 C++ Windows 控制台應用程式
將專案命名為 “helloworld”
核取 [將方案與專案放在相同目錄中] 的方塊。
按兩下 [建立] 按鈕
Visual Studio UI 的螢幕快照,用於命名 MSBuild C++ 專案,然後按兩下 [建立] 按鈕。
設定
VCPKG_ROOT
環境變數。注意
以這種方式設定環境變數只會影響目前的終端機會話。 若要在所有工作階段中永久進行這些變更,請透過 [Windows 系統環境變數] 面板加以設定。
在 Visual Studio 中開啟內建的開發人員 PowerShell 視窗。
內建 PowerShell 開發人員視窗的 Visual Studio UI 螢幕快照
執行下列命令:
$env:VCPKG_ROOT = "C:\path\to\vcpkg" $env:PATH = "$env:VCPKG_ROOT;$env:PATH"
內建 PowerShell 開發人員視窗的 Visual Studio UI 螢幕快照,其中顯示如何設定VCPKG_ROOT,並將其新增至 PATH。
在 Visual Studio 中開啟開發人員命令提示字元。
Visual Studio UI for developer 命令提示字元的螢幕快照。
執行下列命令:
set "VCPKG_ROOT=C:\path\to\vcpkg" set PATH=%VCPKG_ROOT%;%PATH%
Visual Studio 開發人員命令提示字元的螢幕快照,其中顯示如何設定VCPKG_ROOT,並將其新增至PATH。
設定
VCPKG_ROOT
可協助 Visual Studio 找出您的 vcpkg 實例。 新增它以確保PATH
您可以直接從殼層執行 vcpkg 命令。產生指令清單檔案並新增相依性。
執行下列命令以建立 vcpkg 指令清單檔案 (
vcpkg.json
):vcpkg new --application
命令
vcpkg new
會在項目的目錄中新增vcpkg.json
檔案和vcpkg-configuration.json
檔案。fmt
將套件新增為相依性:vcpkg add port fmt
您
vcpkg.json
現在應該包含:{ "dependencies": [ "fmt" ] }
這是您的指令清單檔案。 vcpkg 會讀取指令清單檔,以瞭解要安裝和整合哪些相依性與 MSBuild,以提供專案所需的相依性。
產生的
vcpkg-configuration.json
檔案引進了基準,以將最低版本條件約束放在專案的相依性上。 修改此檔案超出本教學課程的範圍。 雖然本教學課程不適用,但最好讓vcpkg-configuration.json
檔案保持在原始檔控制之下,以確保不同開發環境之間的版本一致性。
3 - 設定項目檔
修改
helloworld.cpp
檔案。將的內容
helloworld.cpp
取代為下列程式代碼:#include <fmt/core.h> int main() { fmt::print("Hello World!\n"); return 0; }
此原始程式檔包含屬於連結
<fmt/core.h>
庫的fmt
標頭。 函main()
式會呼叫fmt::print()
,將 “Hello World!” 訊息輸出至控制台。注意
程式代碼編輯器可能會加上參考
fmt
檔案和符號作為錯誤的行底線。 您必須針對 vcpkg 建置專案一次,才能安裝相依性,並讓自動完成工具正確評估程式代碼。
4 - 啟用指令清單模式
瀏覽至您的 [項目屬性] 頁面。
使用頂端的功能表導覽,選擇 [ 項目 > 屬性]。 新的視窗隨即開啟。
瀏覽至 [ 組態屬性 > vcpkg],並將 設定
Use vcpkg Manifest
為Yes
。在 Visual Studio 專案屬性中啟用 vcpkg 指令清單模式的螢幕快照
其他設定,例如 三胞胎,會填入您專案中偵測到的預設值 vcpkg,而且在設定專案時會很有用。
5 - 建置並執行專案
組建專案。
按
Ctrl+Shift+B
以在Visual Studio中建置專案,並取得 vcpkg 相依性。如果 MSBuild 偵測到
vcpkg.json
專案中已啟用檔案和指令清單,MSBuild 會將指令清單的相依性安裝為建置前步驟。 相依性會安裝在vcpkg_installed
專案的組建輸出目錄中。 連結庫所安裝的任何標頭都可以直接使用,而且任何安裝的連結庫都會自動連結。執行應用程式。
最後,執行可執行檔:
用於執行可執行檔的 Visual Studio UI 螢幕快照。
您應該會看到以下輸出:
程序輸出的螢幕快照 - “Hello World!”
下一步
若要深入瞭解 vcpkg.json
和 vcpkg MSBuild 整合,請參閱我們的參考檔: