Visual Studio 中的 C/C++ 專案和建置系統

您可以使用 Visual Studio 來編輯、編譯及建置任何具有完整 IntelliSense 支援的 C++ 程式碼基底,而不需要將該程式碼轉換成 Visual Studio 專案,或使用 MSVC 工具組編譯。 例如,您可以在 Windows 電腦上的 Visual Studio 中編輯跨平臺 CMake 專案,然後在遠端 Linux 電腦上使用 g++ 為 Linux 進行編譯。

C++ 編譯

若要 建置 C++ 程式,表示從一或多個檔案編譯原始程式碼,然後將這些檔案連結至可執行檔 (.exe)、動態載入程式庫 (.dll) 或靜態程式庫 (.lib)。

基本 C++ 編譯牽涉到三個主要步驟:

  • C++ 預處理器會轉換每個原始程式檔中的所有 #directives 和巨集定義。 這會建立 翻譯單位
  • C++ 編譯器會將每個轉譯單位編譯成物件檔 (.obj),並套用任何已設定的編譯器選項。
  • 連結 會將物件檔合併成單一可執行檔,並套用已設定的連結器選項。

MSVC 工具組

Microsoft C++ 編譯器、連結器、標準程式庫和相關公用程式組成 MSVC 編譯器工具組(也稱為工具鏈或「建置工具」)。 這些包含在 Visual Studio 中。 您也可以下載並使用命令列工具組作為免費的獨立套件。 如需詳細資訊,請參閱 Visual Studio 下載頁面上的 Build Tools for Visual Studio

您可以直接從命令列叫用 MSVC 編譯器 (cl.exe) 來建置簡單的程式。 下列命令接受單一原始程式碼檔案,並叫用 cl.exe 來建置名為 hello.exe 的 可執行檔:

cl /EHsc hello.cpp

在這裡,編譯器 (cl.exe) 會自動叫用 C++ 預處理器和連結器,以產生最終輸出檔案。 如需詳細資訊,請參閱 在命令列上建置

建置系統和專案

大部分的實際程式會使用某種 建置系統 來管理編譯多個組態之多個原始程式檔的複雜度(偵錯與發行)、多個平臺(x86、x64、ARM 等)、自訂建置步驟,甚至是必須依特定順序編譯的多個可執行檔。 您可以在組建組態檔中建立設定,而建置系統會在叫用編譯器之前接受該檔案做為輸入。 建置可執行檔所需的原始程式碼檔案集和建置組態檔稱為 專案

下列清單顯示 Visual Studio 專案 - C++ 的各種選項:

  • 使用 Visual Studio IDE 建立 Visual Studio 專案,並使用屬性頁進行設定。 Visual Studio 專案會產生在 Windows 上執行的程式。 如需概觀,請參閱 Visual Studio 檔中的編譯和建置

  • 開啟包含 CMakeLists.txt 檔案的資料夾。 CMake 支援已整合至 Visual Studio。 您可以使用 IDE 來編輯、測試及偵錯,而不需以任何方式修改 CMake 檔案。 這可讓您使用與可能使用不同的編輯器的其他人員相同的 CMake 專案。 CMake 是跨平臺開發的建議方法。 如需詳細資訊,請參閱 CMake 專案

  • 開啟原始程式檔沒有專案檔的鬆散資料夾。 Visual Studio 會使用啟發學習法來建置檔案。 這是編譯和執行小型主控台應用程式的簡單方式。 如需詳細資訊,請參閱 開啟資料夾專案

  • 開啟包含 makefile 或任何其他建置系統組態檔的資料夾。 您可以將 JSON 檔案新增至資料夾,將 Visual Studio 設定為叫用任何任意建置命令。 如需詳細資訊,請參閱 開啟資料夾專案

  • 在 Visual Studio 中開啟 Windows Makefile。 如需詳細資訊,請參閱 NMAKE 參考

來自命令列的 MSBuild

您可以從命令列叫用 MSBuild,方法是傳遞 .vcxproj 檔案以及命令列選項。 此方法需要充分瞭解 MSBuild,而且只有在需要時才建議使用。 如需詳細資訊,請參閱 MSBuild

本節內容

Visual Studio 專案
如何使用其原生建置系統 (MSBuild) 在 Visual Studio 中建立、設定及建置 C++ 專案。

CMake 專案
如何在 Visual Studio 中撰寫、建置和部署 CMake 專案的程式碼。

開啟資料夾專案
如何使用 Visual Studio,根據任何任意建置系統來撰寫、建置和部署 C++ 專案,或完全沒有建置系統。

發行組建
如何建立優化發行組建並將其疑難排解,以部署給使用者。

從命令列使用 MSVC 工具組
討論如何使用 C/C++ 編譯器,直接從命令列建置工具,而不是使用 Visual Studio IDE。

在 Visual Studio 中建置 DLL
如何在 Visual Studio 中建立、偵錯及部署 C/C++ DLL(共用程式庫)。

逐步解說:建立和使用靜態程式庫
如何建立 .lib 二進位檔。

建置 C/C++ 隔離應用程式和並存組件
描述 Windows 桌面應用程式的部署模型,其基於隔離應用程式及並存組件的想法。

設定適用於 64 位元、x64 目標的 C++ 專案
如何使用 MSVC 建置工具,以 64 位 x64 硬體為目標。

針對 ARM 處理器設定 C++ 專案
如何使用 MSVC 建置工具來以 ARM 硬體為目標。

最佳化程式碼
如何以各種方式優化程式碼,包括程式引導式優化。

為 Windows XP 設定程式
如何使用 MSVC 建置工具將 Windows XP 設為目標。

C/C++ 建置參考
提供參考文章連結,包含以 C++ 建置程式,和編譯器及連結器選項,以及各種建置工具的連結。