你可以使用Visual Studio內建的工具,在命令列上建立C和C++應用程式。 您也可以下載Microsoft C++(MSVC)建置工具作為獨立套件。 如果你不打算用 Visual Studio IDE,其實不需要安裝它。
注意
本文將介紹如何建立一個環境,以使用各個編譯器、連結器、函式庫及其他基本工具。 Visual Studio 的原生專案建置系統(基於 MSBuild)並不使用本文所述的環境。 如需如何從命令行使用 MSBuild 的詳細資訊,請參閱 命令行上的 MSBuild - C++。
下載並安裝工具
如果你安裝了 Visual Studio 和 C++ 工作負載,你就擁有所有命令列工具。 關於如何安裝 C++ 和 Visual Studio,請參見 Visual Studio 中的
如果您只需要命令列工具,請下載 Build Tools for Visual Studio。 在下載頁面,展開 Tools for Visual Studio 即可找到建置工具下載。 當你執行下載的執行檔時,它會更新並執行 Visual Studio 安裝程式。
若要只安裝C++開發所需的工具,請選取具有C++工作負載的桌面開發。 在 安裝細節中,您可以選擇可選的函式庫與工具組。 若要使用 Visual Studio 2015、Visual Studio 2017 或 Visual Studio 2019 工具組來編譯程式碼,請選擇可選的 MSVC v140、v141 或 v142 建置工具。 當您滿意您的選擇時,請選擇 [ 安裝]。
如果你安裝了 Visual Studio 和 C++ 工作負載,你就擁有所有命令列工具。 關於如何安裝 C++ 和 Visual Studio,請參見 Visual Studio 中的
如果你只想要命令列工具組,請下載 Build Tools for Visual Studio 2017。 當你執行下載的執行檔時,它會更新並執行 Visual Studio 安裝程式。
若要只安裝C++開發所需的工具,請選取具有C++工作負載的桌面開發。 在 安裝細節中,您可以選擇可選的函式庫與工具組。 若要使用 Visual Studio 2015 工具組編譯程式碼,請選擇可選的 MSVC v140 建置工具。 當您滿意您的選擇時,請選擇 [ 安裝]。
如何使用命令列工具
當你在 Visual Studio 安裝程式中選擇其中一個 C++ 工作負載時,預設會安裝特定版本的 MSVC 建置工具套件。 2022 Visual Studio及更早版本,套件依 platform 工具組(v### 版本格式)組織,包含特定版本 Visual Studio 的所有 C 與 C++ 工具。 在較新的 Visual Studio 版本中,套件包含 MSVC 版本(v##.## 版本格式),其中包含該 MSVC 套件的所有 C 與 C++ 工具。 MSVC 版本與 Visual Studio 版本是解耦的。
這些工具包括 C/C++ 編譯器、連結器、組合語言及其他建置工具。 它包含了匹配的函式庫和標頭檔。 你可以在指令列使用這些工具。 Visual Studio IDE 內部使用它們。 有個別的 x86 裝載和 x64 裝載編譯器和工具,可建置 x86、x64、ARM 和 ARM64 目標的程式碼。 特定主機和目標組建架構適用的每一組工具都會儲存在其本身的目錄中。
要正常運作,這些工具需要設定多個環境變數。 這些變數將工具加入路徑,並設定包含檔案、函式庫檔案及 SDK 的位置。 為了方便您設定這些環境變數,安裝程式在安裝期間會建立自訂命令檔或批次檔。 你可以執行這些指令檔,設定特定的主機與目標建置架構、Windows SDK 版本及平台工具組。
為了方便起見,安裝程式也會在 [開始] 功能表 中建立快捷方式。 這些捷徑會使用這些命令檔案,針對特定的主機與目標組合開啟開發人員命令提示字元視窗。 這些快捷方式可確保所有必要的環境變數都已設定並可供使用。
必要的環境變數專屬於您的安裝,以及您選擇的組建架構。 產品更新或升級可能會改變變數。 這種變異性是建議您使用已安裝的命令提示字元快捷方式或命令檔,而不是自行設定環境變數的原因之一。
安裝程式新增的工具組、指令檔和捷徑取決於你的電腦處理器以及安裝時選擇的選項。 始終會安裝用於建置 x86 和 x64 程式碼的 x86 主機工具和跨平台工具。 如果你有 64 位元 Windows,也會安裝 x64 託管的工具和交叉工具,用來建構 x86 和 x64 程式碼。 如果你選擇可選的 C++ 通用 Windows 平台 工具,也會安裝用於編譯 ARM 和 ARM64 程式碼的 x86 和 x64 工具。 其他工作負載也可以安裝這些工具。
命令行組建的路徑和環境變數
MSVC 命令列工具使用 PATH、 TMP、 INCLUDE、 LIB和 LIBPATH 環境變數。 它們也會使用你安裝的工具、平台和 SDK 所專屬的其他環境變數。 即使是簡單的 Visual Studio 安裝,也能設定二十個以上的環境變數。 此複雜性是強烈建議您使用 開發人員命令提示字元快捷方式 或其中一個 自定義命令檔的原因。 我們不建議你自己在 Windows 環境中設定這些變數。
要查看開發者命令提示字元捷徑設定的環境變數,請使用該 SET 指令。 打開一個普通的命令提示字元視窗,擷取指令的 SET 輸出作為基準。 開啟開發者指令提示字元視窗,擷取指令的 SET 輸出以便比較。 使用像是 Visual Studio 內建的差異工具,來標示開發者命令提示字元設定的環境變數。 如需編譯程式和鏈接器環境變數的詳細資訊,請參閱 CL環境變數。
開發人員命令提示字元快捷方式
命令提示字元的捷徑會安裝在 Windows 開始選單中特定版本的 Visual Studio 資料夾內。 以下列出基礎命令提示字元捷徑及其支援的組建架構:
- 開發者指令提示字元。 設定環境使用 32 位元、x86 原生工具來建立 32 位元、x86 原生程式碼。
- x86 原生工具命令提示字元。 設定環境使用 32 位元、x86 原生工具來建立 32 位元、x86 原生程式碼。
- x64 原生工具命令提示字元。 設定環境使用 64 位元、x64 原生工具來建立 64 位元、x64 原生程式碼。
- x86_x64 交叉工具命令提示字元。 設定環境使用 32 位元、x86 原生工具來建立 64 位元、x64 原生程式碼。
- x64_x86 交叉工具命令提示字元。 設定環境為使用 64 位元、x64 原生工具來建立 32 位元、x86 原生程式碼。
開始選單資料夾和捷徑名稱會依安裝的 Visual Studio 版本而有所不同。 如果您設定了其中一個,這些也會依賴於安裝 昵稱。 舉例來說,假設你安裝了 2022 Visual Studio,並且給它取了個暱稱 Latest。 開發者指令提示字元捷徑名為 Developer Command Prompt for VS 2022 (Latest),存放於名為 Visual Studio 2022 的資料夾中。
開始選單資料夾和捷徑名稱會依安裝的 Visual Studio 版本而有所不同。 如果您設定了其中一個,這些也會依賴於安裝 昵稱。 舉例來說,假設你安裝了 2017 Visual Studio,並且給它取了個暱稱 Latest。 開發者指令提示字元捷徑名為 Developer Command Prompt for VS 2017 (Latest),存放於名為 Visual Studio 2017 的資料夾中。
開始選單資料夾和捷徑名稱會依安裝的 Visual Studio 版本而有所不同。 舉例來說,假設你安裝了 Visual Studio 2015。 開發人員命令提示字元快捷方式名為 VS 2015 的開發人員命令提示字元。
注意
數個命令列工具或工具選項需要管理員權限。 如果你在使用時遇到權限問題,我們建議你透過「 以管理員身份執行 」選項開啟開發者命令提示字元視窗。 右鍵點擊以開啟命令提示字元視窗的捷徑選單,然後選擇 「更多>」以管理員身份執行。
開啟開發者命令提示字元視窗
在桌面上,開啟 Windows Start選單。 在Windows 11中,選擇所有應用程式以開啟已安裝的應用程式清單。 在 Windows 10 中,清單會打開在左側。 往下滑清單,找到並打開你版本Visual Studio的資料夾(不是應用程式),例如 Visual Studio 2022。
在資料夾中,選擇適用於您版本的 Visual Studio 的開發人員命令提示字元。 此捷徑會啟動一個開發者命令提示字元視窗,該視窗使用 32 位元、x86 原生工具的預設建置架構,來建構 32 位元、x86 原生程式碼。 如果你偏好非預設的建置架構,可以選擇原生或跨工具的指令提示字串來指定主機與目標架構。
若要加快開啟開發人員命令提示字元的方式,請在桌面搜尋方塊中輸入 開發人員命令提示字元 。 然後選擇您想要的結果。
注意
預設情況下,開發者指令提示字元中目前的工作目錄是你 Visual Studio 安裝在 Program Files 目錄中的根目錄。 這個地點不適合你的程式碼和專案。 在建立專案之前,將目前的工作目錄變更為另一個位置。 IDE 會在你的使用者目錄中建立專案,通常是在 %USERPROFILE%\source\repos。
開發人員命令檔案位置
如果你偏好在現有的命令提示字元視窗中設定建置環境,可以使用安裝程式所建立的指令檔。 我們建議你將環境設定在新的命令提示字元視窗中。 我們不建議您稍後在相同的命令視窗中切換環境。
指令檔的位置取決於你安裝的 Visual Studio 版本,以及安裝時所做的選擇。 適用於 Visual Studio 2022,在 64 位元系統上的典型安裝位置為 \Program Files\Microsoft Visual Studio\2022\<edition>。 這些 <edition> 暱稱可以是 Community、Professional、Enterprise、BuildTools,或你用的其他暱稱。
指令檔的位置取決於你安裝的 Visual Studio 版本,以及安裝時所做的選擇。 對於 Visual Studio 2019,64位元系統的典型安裝位置為\Program Files (x86)\Microsoft Visual Studio\2019\<edition>。 這些 <edition> 暱稱可以是 Community、Professional、Enterprise、BuildTools,或你用的其他暱稱。
指令檔的位置取決於你安裝的 Visual Studio 版本,以及安裝時所做的選擇。 對於 Visual Studio 2017,64位元系統的典型安裝位置為\Program Files (x86)\Microsoft Visual Studio\2017\<edition>。 這些 <edition> 暱稱可以是 Community、Professional、Enterprise、BuildTools,或你用的其他暱稱。
指令檔案的位置取決於 Visual Studio 版本及安裝目錄。 以 Visual Studio 2015 為例,64 位元系統的典型安裝位置是 \Program Files (x86)\Microsoft Visual Studio 14.0。
主要的開發者命令提示字元指令檔 VsDevCmd.bat,位於該 Common7\Tools 目錄中。 當你不指定參數時,它會設定環境使用 x86 原生工具來建立 32 位元 x86 程式碼。
有更多命令檔可用來設定特定的組建架構。 可用的指令檔案取決於你安裝的 Visual Studio 工作負載和選項。 在 2017 Visual Studio 和 2019 Visual Studio,你會在 VC\Auxiliary\Build 目錄中找到它們。
有更多命令檔可用來設定特定的組建架構。 可用的指令檔案取決於你安裝的 Visual Studio 工作負載和選項。 在 2015 Visual Studio,它們位於 VC、VC\bin 或 VC\bin\<architecture> 目錄中,其中 <architecture> 是原生或交叉編譯器的選項之一。
這些命令檔會設定預設參數,並呼叫 VsDevCmd.bat 來設定指定的組建架構環境。 一個典型的安裝可能包含以下指令檔案:
| 命令檔 | 主機和目標架構 |
|---|---|
vcvars32.bat |
使用 32 位元 x86 原生工具來建置 32 位元 x86 程式碼。 |
vcvars64.bat |
使用 64 位元 x64 原生工具來建置 64 位元 x64 程式碼。 |
vcvarsx86_amd64.bat |
使用 32 位元 x86 原生跨平台工具來建置 64 位元 x64 程式碼。 |
vcvarsamd64_x86.bat |
使用 64 位元 x64 原生跨平台工具來建置 32 位元 x86 程式碼。 |
vcvarsx86_arm.bat |
使用 32 位元 x86 原生跨平台工具來建置 ARM 程式碼。 |
vcvarsamd64_arm.bat |
使用 64 位元 x64 原生跨平台工具來建置 ARM 程式碼。 |
vcvarsx86_arm64.bat |
使用32位 x86 原生跨工具建置ARM64程式碼。 |
vcvarsamd64_arm64.bat |
使用 64 位 x64 原生跨工具建置 ARM64 程式代碼。 |
vcvarsall.bat |
使用參數指定主機與目標架構、Windows SDK 及平台選擇。 若要取得支援的選項清單,請使用 /help 參數進行呼叫。 |
警告
vcvarsall.bat 檔案及其他Visual Studio指令檔案會因電腦而異。 不要用其他電腦的檔案來替換遺失或損壞 vcvarsall.bat 的檔案。 重新執行 Visual Studio 安裝程式,替換缺少的檔案。
檔案 vcvarsall.bat 也會因版本而異。 如果目前版本的 Visual Studio 安裝在同時安裝較早期版本 Visual Studio 的電腦上,請不要在同一命令提示字元視窗中執行不同版本的 vcvarsall.bat 或其他 Visual Studio 指令檔。
在現有的命令視窗中使用開發人員工具
在現有命令視窗中指定特定建置架構的最簡單方式是使用 vcvarsall.bat 檔案。 使用 vcvarsall.bat 來設定環境變數,以設定命令提示字元視窗以進行原生 32 位元或 64 位元編譯。 自變數可讓您指定 x86、x64、ARM 或 ARM64 處理器的交叉編譯。 你可以鎖定 Microsoft Store、通用 Windows 平台 或 Windows 桌面平台。 你甚至可以指定要用哪個 Windows SDK,並選擇平台工具組版本。
當你使用 vcvarsall.bat 且沒有參數時,它會設定環境變數,使用目前 x86 原生編譯器來處理 32 位元Windows桌面目標。 新增參數來設定環境,使其能使用任何原生或跨交叉編譯工具。 如果你指定電腦上未安裝或無法使用的組態,vcvarsall.bat 就會顯示錯誤訊息。
vcvarsall 語法
vcvarsall.bat[] [architectureplatform_type] [winsdk_version] [] [-vcvars_ver=vcversion] [spectre_mode]
architecture這個選擇性引數會指定要使用的主機和目標架構。 如果你沒指定
architecture,則使用預設建置環境。 以下論點被支持:architecture編譯器 主機電腦架構 組建輸出 (目標) 架構 x86x86 32 位元原生 x86、x64 x86 x86_amd64或x86_x64x64 在 x86 上的交叉架構 x86、x64 x64 x86_armARM 架構於 x86 平台上運行 x86、x64 ARM x86_arm64ARM64 on x86 (跨平台) x86、x64 ARM64 amd64或x64x64 64 位元原生 x64 x64 amd64_x86或x64_x86x86 on x64 (跨平台) x64 x86 amd64_arm或x64_armARM on x64 (跨平台) x64 ARM amd64_arm64或x64_arm64ARM64 on x64 (跨平台) x64 ARM64 platform_type此可選參數指定
storeoruwp作為平台類型。 根據預設,環境會設定為建置桌面或主控台應用程式。winsdk_version可選擇性地指定要使用的 Windows SDK 版本。 預設情況下,會使用最新安裝的 Windows SDK。 若要指定 Windows SDK 版本,請使用完整的 Windows SDK 編號,例如
10.0.10240.0,或指定8.1以使用 Windows 8.1 SDK。vcversion可選擇指定要使用的 Visual Studio 編譯器工具組。 預設環境設定為使用目前的 Visual Studio 編譯工具組。
使用 -vcvars_ver=14.2x.yyyy 指定 Visual Studio 2019 編譯工具組的特定版本。
請使用 -vcvars_ver=14.29 指定 2019 Visual Studio 編譯工具組的最新版本。
使用 -vcvars_ver=14.16 指定 Visual Studio 2017 編譯器工具組的最新版本。
使用 -vcvars_ver=14.1x.yyyy 指定 Visual Studio 2017 編譯工具組的特定版本。
使用 -vcvars_ver=14.0 指定 Visual Studio 2015 編譯工具組。
spectre_mode不設定此參數即可使用不具備 Spectre 經緯風險緩解的程式庫。 以
spectre值使用帶有Spectre緩解措施的程式庫。
在現有的命令提示字元視窗中建立建置環境
在命令提示字元,使用
CD指令切換到Visual Studio安裝目錄。 然後再用 AgainCD,切換到包含特定配置指令檔案的子目錄。 2019 Visual Studio 及 2017 Visual Studio,請使用VC\Auxiliary\Build子目錄。 Visual Studio 2015 年,請使用VC子目錄。針對您慣用的開發人員環境輸入命令。 例如,要在 64 位元平台上使用 Windows SDK 和 Visual Studio 編譯工具組編譯 UWP 的 ARM 程式碼,請使用以下指令:
vcvarsall.bat amd64_arm uwp
建立您自己的命令提示字元捷徑
開啟開發者命令提示字元捷徑的 屬性 對話框,查看所使用的指令目標。 例如, x64 Native Tools VS 2019 指令提示字元 捷徑的目標類似:
%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"
開啟開發者命令提示字元捷徑的 屬性 對話框,查看所使用的指令目標。 例如, x64 Native Tools VS 2017 命令提示字元 捷徑的目標類似於:
%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
開啟開發者命令提示字元捷徑的 屬性 對話框,查看所使用的指令目標。 例如, VS2015 x64 Native Tools 命令提示字元 捷徑的目標類似於:
%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
架構特定的批次處理檔會設定 architecture 參數並呼叫 vcvarsall.bat。 你可以將傳給 vcvarsall.bat 的相同選項傳給這些批次檔,或者直接呼叫 vcvarsall.bat。 要指定你自己的指令快捷鍵參數,請在命令末尾用雙引號加進去。 舉例來說,這裡有一個捷徑,可以在 64 位元平台上使用最新的 Windows SDK 編寫 UWP 的 ARM 程式碼。 若要使用先前的編譯程式工具組,請指定版本號碼。 在快捷鍵中使用像這樣的指令目標:
%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64_arm uwp -vcvars_ver=14.29
%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64_arm uwp -vcvars_ver=14.19
%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 -vcvars_ver=14.0
調整路徑以反映你的 Visual Studio 安裝目錄。 檔案 vcvarsall.bat 中包含特定版本號的額外資訊。
命令列工具
若要在命令提示字元建立 C/C++ 專案,Visual Studio 提供以下命令列工具:
當您在命令行上建置時,F1 命令無法立即取得協助。 相反地,您可以使用搜尋引擎來取得警告、錯誤和訊息的相關信息。 您也可以下載並使用離線說明檔。 要在 Microsoft Learn 中使用搜尋功能,請在任何文章頂部的搜尋框輸入你的查詢。
命令行專案管理工具
預設情況下,Visual Studio IDE 使用基於 MSBuild 的原生專案建置系統。 您可以直接叫用 MSBuild 來建置專案,而不需使用 IDE。 你也可以使用 devenv 指令來用 Visual Studio 來建立專案和解決方案。 Visual Studio 也支援基於 CMake 或 NMake 的建置系統。
-
使用 MSBuild(
msbuild.exe)和專案檔案(.vcxproj)來設定建置並呼叫工具組,無需載入Visual Studio IDE。 這相當於在Visual Studio IDE中執行 Build專案或 Build Solution指令。 MSBuild 在命令行建置時,在 IDE 上具有優勢。 您不需要在所有組建伺服器和建置管線上安裝完整的 IDE。 您可以避免 IDE 的額外負荷。 MSBuild 會在容器化組建環境中執行,並支援 二進位記錄器。 -
使用 DEVENV(
devenv.exe)搭配命令列開關,如/Build或/Clean,執行某些建置指令而不顯示Visual Studio IDE。 -
CMake (
cmake.exe) 是一個跨平台開源工具,用於定義能在多個平台上運行的建置流程。 CMake 可以設定及控制其支持平臺的原生建置工具,例如 MSBuild 和 Make。 如需 CMake 的詳細資訊,請參閱 CMake 文件。 -
使用 NMAKE
nmake.exe() 來使用傳統的 makefile 來建立 C++ 專案。
注意
從 Visual Studio 2019 16.5 版本開始,MSBuild 和 DEVENV 不再使用命令列環境來控制所使用的工具集和函式庫。