共用方式為


設定編譯程式和建置屬性

在 Visual Studio IDE 中,您可以檢視和編輯編譯和建置專案所需的屬性。 此資訊包括應用程式名稱、擴充功能(例如 DLL、LIB、EXE)、編譯程式選項、連結器選項、調試程式設定,以及自定義建置步驟。

您可以使用 屬性頁來檢視和修改這些屬性。 若要存取屬性頁,請從主功能表中選擇 [>專案名稱屬性],或以滑鼠右鍵按兩下 [方案總管] 中的項目節點,然後選擇 [屬性]。

預設屬性

當您建立專案時,系統會為各種屬性指派值。 預設值會根據專案種類和您在應用程式精靈中選擇的選項而有所不同。 例如,Active Template Library (ATL) 專案具有與Microsoft介面定義語言 (MIDL) 檔案相關的屬性,但這些屬性在基本控制台應用程式中不存在。 預設屬性會顯示在 [ 屬性頁 ] 視窗的 [進階] 窗格中:

[Visual Studio 專案屬性] 對話框的螢幕快照,其中已選取 [進階] 窗格。醒目提示 MFC、字元集等屬性。

套用屬性以建置組態和目標平臺

某些屬性,例如應用程式名稱,會套用至所有組建變化和目標平台,無論是除錯或發行組建。 但大部分的屬性都是與組態相依的。 若要產生正確的程式代碼,編譯程式必須知道程序執行所在的特定平臺,以及要使用的特定編譯程序選項。 因此,當您設定屬性時,請務必注意應該套用新值的組態和平臺。 它應該只套用至偵錯 Win32 組建,還是也應該套用至偵錯 ARM64 和偵錯 x64? 例如,根據預設, Optimization 屬性會在發行組態中設定為 最大化速度 (/O2), 但在 [偵錯] 組態中已停用。

您可以隨時查看並變更屬性值應套用的組態和平台。 下圖顯示屬性頁,頂端包含組態及平臺資訊的控件。 在此設定 Optimization 屬性時,它只適用於偵錯 x64 組建,即目前使用中的組態,如紅色箭號所示。

Visual Studio [屬性頁] 對話框的螢幕快照。

頁面將開啟 C/C++ 的優化。 [優化] 設定已設為 [已停用](/Od),被標示出來。箭號指出專案屬性頁面中 [設定] 與工具列上 [方案配置] 下拉選單間的關聯,[設定] 已設為 Active(Debug),而 [方案配置] 設定為 [偵錯]。 另一個箭號會呼叫專案屬性頁中 [平臺] 設定之間的關聯性,該設定設為 Active(x64),以及工具列上 [方案平臺] 下拉式清單中設定為 x64 的設定。

下圖顯示相同的專案屬性頁,但組態已變更為 Release。 請注意 Optimization 屬性的不同值。 另外,請注意,當前使用的組態仍為偵錯模式。 您可以在這裡設定任何配置的屬性,即使該配置不一定是作用中的。

Visual Studio 專案屬性頁對話框的螢幕截圖。[組態] 下拉式選單已突出顯示並設定為 [發行]。優化設定已設為最大化速度/O2。

目標平台

目標平臺 是指可執行檔執行的裝置和作系統類型。 您可以為多個平臺建置專案。 C++專案可用的目標平臺取決於項目種類。 它們包括但不限於 Win32、x64、ARM、ARM64、Android 和 iOS。 您可能會在 Configuration Manager 中看到的 x86 目標平臺,與原生C++專案中的 Win32 相同。 Win32 表示 32 位 Windows,x64 表示 64 位 Windows。 如需這兩個平臺的詳細資訊,請參閱 執行32位應用程式

您在 Configuration Manager 中看到的 Any CPU 目標平臺值對 C++ 原生專案不產生任何影響。 它只與C++/CLI 和其他 .NET 項目類型相關。 如需詳細資訊,請參閱/CLRIMAGETYPE(指定CLR映像的類型)。

如需設定偵錯組建屬性的詳細資訊,請參閱:

C++編譯程式和鏈接器選項

C++編譯程式和鏈接器選項位於 [組態屬性] 下方的 [C/C++] 和 [鏈接器] 節點底下。 這些選項會直接轉譯為傳遞至編譯程式的命令行選項。 若要閱讀特定選項的相關文件,請選取中央窗格中的選項,然後按 F1。 或者,您可以在 MSVC 編譯程式選項MSVC 連結器選項中瀏覽所有選項的檔。

[ 屬性頁] 對話框只會顯示與目前專案相關的屬性頁。 例如,如果項目沒有 .idl 檔案,則不會顯示 MIDL 屬性頁。 如需每個屬性頁面上設定的詳細資訊,請參閱屬性頁(C++)。

目錄和路徑值

MSBuild 支援針對特定字串值使用編譯時間常數,例如包含目錄和路徑,稱為 巨集。 巨集可以指代由 Visual Studio 或 MSBuild 系統定義的值,也可以指代使用者定義的值。 巨集的樣式為 $(macro-name)%(item-macro-name)。 它們會公開在屬性頁中,您可以在其中參考及修改它們,方法是使用 屬性編輯器。 使用巨集,而不是硬編碼值,例如目錄路徑。 巨集可讓您更輕鬆地在計算機與Visual Studio版本之間共用屬性設定。 您也可以更妥善地確保項目設定正確地參與 屬性繼承

下圖顯示 Visual Studio C++專案的屬性頁。 在左窗格中,選取 [VC++ 目錄] 規則 ,右窗格會列出與該規則相關聯的屬性。 屬性值通常是巨集,例如 $(VC_SourcePath)

適用於各種目錄之規則的 Visual Studio 屬性頁對話框螢幕快照。

VC++ 目錄頁已開啟,具備 VC++ 目錄規則的屬性。 範例規則是 Source 目錄,其設定為 $(VC_SourcePath)。 包含目錄、連結庫目錄、可執行目錄等都有規則。

您可以使用 屬性編輯器 來檢視所有可用巨集的值。

預先定義巨集

  • 全域巨集
    全域巨集會套用至專案配置中的所有項目。 全域巨集具有 語法 $(name)。 全域巨集的範例是 $(VCInstallDir),它會儲存Visual Studio安裝的根目錄。 全域巨集會對應至 MSBuild 中的PropertyGroup

  • 項目巨集
    項目巨集具有語法 %(name)。 對於檔案,項目巨集僅適用於該檔案。 例如,您可以使用 %(AdditionalIncludeDirectories) 來指定只套用至特定檔案的 Include 目錄。 這類項目宏會在 MSBuild 中對應到 ItemGroup 的元數據。 在專案配置中使用時,項目巨集會套用於特定類型的所有檔案。 例如,C/C++ 預處理器定義 的組態屬性可以接受一個適用於專案中所有 .cpp 檔案的 %(PreprocessorDefinitions) 巨集物件。 這類項目宏會在 MSBuild 中對應到 ItemDefinitionGroup 的元數據。 如需詳細資訊,請參閱 項目定義

使用者定義的巨集

您可以建立 使用者定義的巨集 ,以在專案組建中當做變數使用。 例如,您可以建立使用者定義的巨集,以提供自定義建置步驟或自定義建置工具的值。 用戶定義的巨集是名稱/值組。 在項目檔中,使用 $(name) 表記法來存取值。

用戶定義的巨集會儲存在屬性表中。 如果您的專案尚未包含屬性表,您可以依照 共用或重複使用 Visual Studio 專案設定底下的步驟建立一個。

建立使用者定義的巨集

  1. 開啟 [屬性管理員] 視窗。 在功能表欄上,選取 [ 檢視>其他 Windows>屬性管理員]。 開啟屬性表的快捷方式功能表(其名稱結尾為 .user),然後選擇 [ 屬性]。 屬性表的 [ 屬性頁 ] 對話框隨即開啟。

  2. 在對話框的左窗格中,選取 使用者巨集。 在右窗格中,選擇新增巨集按鈕以開啟新增使用者巨集對話框。

  3. 在對話框中,指定巨集的名稱和值。 選擇「在建置環境中將此巨集設定為環境變數」選項框。

屬性編輯器

您可以使用屬性編輯器來修改特定字串屬性,並選取巨集做為值。 若要存取 [屬性編輯器],請在屬性頁面上選取屬性,然後選擇右邊的向下箭號按鈕。 如果下拉式清單包含 <[編輯>],您可以選擇它來顯示該屬性的屬性編輯器。

Visual Studio 專案屬性頁面中 VC++ 目錄的螢幕快照。

[包含目錄] 設定的屬性編輯器已開啟。 它會顯示 Include 目錄的評估值,也就是 C:\Program Files(x86)\Microsoft Visual Studio 14.0\VC\Include。 它會顯示兩個繼承的值:$(VC_IncludePath) 和 $(WindowsSDK_IncludePath)。 已選取 [繼承自父代或項目預設值] 的複選框。

在 [屬性編輯器] 中,您可以選擇 [ 巨集 ] 按鈕來檢視可用的巨集及其目前的值。 下圖顯示屬性編輯器中的 Include 目錄 屬性在選取 巨集 按鈕之後。 選取 [繼承自父代或專案預設值] 核取方塊並新增一個新值時,此新值將會附加到當前正在繼承的任何值中。 如果您清除複選框,新的值會取代繼承的值。 在大部分情況下,請保持複選框的選取狀態。

[屬性編輯器]對話框的螢幕快照顯示在選取[巨集]按鈕之後。

[包含目錄] 的屬性編輯器已開啟。 評估的值會連同繼承的值一起顯示。 清單框包含各種巨集及其值,例如設定為 Unicode 的 $(CharacterSet)。

將 include 目錄新增至預設目錄集

當您將一個包含目錄新增至專案時,請務必不要覆寫所有預設目錄。 新增目錄的正確方式是附加新的路徑,例如 C:\MyNewIncludeDir\,然後將巨集附加 $(IncludePath) 至屬性值。

快速流覽和搜尋所有屬性

[所有選項] 屬性頁 (在 [屬性頁] 對話方塊中的 [>C/C++] 節點底下,可讓您快速瀏覽和搜尋目前內容中可用的屬性。 它具有特殊的搜尋方塊和簡單的語法,可協助您篩選結果:

  • 無前置詞:僅搜尋屬性名稱(不區分大小寫的子字串)。

  • '/' 或 '-:只在編譯程序參數中搜尋 (不區分大小寫的前置詞)。

  • v:只在值中搜尋 (不區分大小寫的子字串)。

設定組建的環境變數

MSVC 編譯程式 (cl.exe) 會辨識某些環境變數,特別是 LIBLIBPATHPATHINCLUDE。 當您使用 IDE 建置時, VC++ 目錄屬性頁 中設定的屬性會用來設定這些環境變數。 如果 LIBLIBPATHINCLUDE 的值已經被設定,例如透過開發人員命令提示字元設定,則這些值會被對應的 MSBuild 屬性的值取代。 建置接著會將 VC++ 目錄可執行檔案目錄屬性的值前面加上 。PATH 您可以建立使用者定義的巨集,然後核取 [ 將此巨集設定為建置環境中的環境變數] 方塊,以設定使用者定義的環境變數。

設定偵錯會話的環境變數

在專案 [屬性頁] 對話框的左窗格中,展開 [ 組態屬性 ],然後選取 [ 偵錯]。

在右窗格中,修改 [環境 ] 或 [ 合併環境] 專案設定,然後選擇 [ 確定 ] 按鈕。

本節中的文章

另請參閱