在 Visual Studio IDE 中,您可以檢視和編輯編譯和建置專案所需的屬性。 此資訊包括應用程式名稱、擴充功能(例如 DLL、LIB、EXE)、編譯程式選項、連結器選項、調試程式設定,以及自定義建置步驟。
您可以使用 屬性頁來檢視和修改這些屬性。 要進入屬性頁面,在主選單中選擇 Project,然後選擇屬性。 或者在 方案總管 中,右鍵點擊專案節點並選擇屬性。
預設屬性
當您建立專案時,系統會為各種屬性指派值。 預設值會根據專案種類和您在應用程式精靈中選擇的選項而有所不同。 例如,Active Template Library (ATL) 專案具有與Microsoft介面定義語言 (MIDL) 檔案相關的屬性,但這些屬性在基本控制台應用程式中不存在。 在「屬性頁面」視窗中的進階面板顯示預設屬性:
套用屬性以建置組態和目標平臺
某些屬性,例如應用程式名稱,會套用至所有組建變化和目標平台,無論是除錯或發行組建。 但大部分的屬性都是與組態相依的。 為了產生正確的程式碼,編譯器需要知道程式運行的特定平台以及應該使用哪些編譯器選項。 所以當你設定屬性時,注意新值應該套用在哪個設定和平台。 它應該只套用至偵錯 Win32 組建,還是也應該套用至偵錯 ARM64 和偵錯 x64? 例如,根據預設, Optimization 屬性會在發行組態中設定為 最大化速度 (/O2), 但在 [偵錯] 組態中已停用。
您可以隨時查看並變更屬性值應套用的組態和平台。 下圖顯示屬性頁,頂端包含組態及平臺資訊的控件。 當你在這裡設定 Optimization 屬性時,它只會適用於 Debug x64 建置,也就是目前活躍的配置,如紅色箭頭所示。
頁面將開啟 C/C++ 的優化。 [優化] 設定已設為 [已停用](/Od),被標示出來。箭號指出專案屬性頁面中 [設定] 與工具列上 [方案配置] 下拉選單間的關聯,[設定] 已設為 Active(Debug),而 [方案配置] 設定為 [偵錯]。 另一個箭號會呼叫專案屬性頁中 [平臺] 設定之間的關聯性,該設定設為 Active(x64),以及工具列上 [方案平臺] 下拉式清單中設定為 x64 的設定。
以下插圖顯示相同的專案屬性頁面,但設定改為「發布」。 請注意 Optimization 屬性的不同值。 另外,請注意,當前使用的組態仍為偵錯模式。 您可以在這裡設定任何配置的屬性,即使該配置不一定是作用中的。
目標平台
目標平臺 是指可執行檔執行的裝置和作系統類型。 您可以為多個平臺建置專案。 C++專案可用的目標平臺取決於項目種類。 它們包括但不限於 Win32、x64、ARM、ARM64、Android 和 iOS。 你在 Microsoft Configuration Manager 中看到的 x86 目標平台,與原生 C++ 專案中的 Win32 完全相同。 Win32 表示 32 位 Windows,x64 表示 64 位 Windows。 如需這兩個平臺的詳細資訊,請參閱 執行32位應用程式。
您在 設定管理員 中看到的 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):
VC++ 目錄頁面已開啟,該頁面包含 VC++ 目錄規則的屬性。 一個範例規則是來源目錄,設定為「$(VC_SourcePath)」。 包含目錄、連結庫目錄、可執行目錄等都有規則。
使用 屬性編輯器 查看所有可用巨集的數值。
預先定義巨集
全域巨集
全域巨集會套用至專案配置中的所有項目。 全域巨集具有 語法$(name)。 全域巨集的範例是$(VCInstallDir),它會儲存Visual Studio安裝的根目錄。 全域巨集會對應至 MSBuild 中的PropertyGroup。項目巨集
項目巨集具有語法%(name)。 對於檔案,項目巨集僅適用於該檔案。 例如,您可以使用%(AdditionalIncludeDirectories)來指定只套用至特定檔案的 Include 目錄。 這類項目宏會在 MSBuild 中對應到ItemGroup的元數據。 在專案配置中使用時,項目巨集會套用於特定類型的所有檔案。 例如,C/C++ 預處理器定義 的組態屬性可以接受一個適用於專案中所有 .cpp 檔案的%(PreprocessorDefinitions)巨集物件。 這類項目宏會在 MSBuild 中對應到ItemDefinitionGroup的元數據。 如需詳細資訊,請參閱 項目定義。
使用者定義的巨集
建立 使用者自訂巨集 ,作為專案建置中的變數。 例如,您可以建立使用者定義的巨集,以提供自定義建置步驟或自定義建置工具的值。 用戶定義的巨集是名稱/值組。 在項目檔中,使用 $(name) 表記法來存取值。
用戶定義的巨集會儲存在屬性表中。 如果您的專案尚未包含屬性表,您可以依照 共用或重複使用 Visual Studio 專案設定底下的步驟建立一個。
建立使用者定義的巨集
開啟 [屬性管理員] 視窗。 在功能表欄上,選取 [ 檢視>其他 Windows>屬性管理員]。 開啟屬性表的快捷方式功能表(其名稱結尾為
.user),然後選擇 [ 屬性]。 屬性表的 [ 屬性頁 ] 對話框隨即開啟。在對話框的左窗格中,選取 使用者巨集。 在右窗格中,選擇新增巨集按鈕以開啟新增使用者巨集對話框。
在對話框中,指定巨集的名稱和值。 選擇「在建置環境中將此巨集設定為環境變數」選項框。
屬性編輯器
使用屬性編輯器修改某些字串屬性並選擇巨集作為值。 若要存取 [屬性編輯器],請在屬性頁面上選取屬性,然後選擇右邊的向下箭號按鈕。 如果下拉選單中有 <編輯>,你可以選擇它來顯示該物件的屬性編輯器。
[包含目錄] 設定的屬性編輯器已開啟。 它會顯示 Include 目錄的評估值,也就是 C:\Program Files(x86)\Microsoft Visual Studio 14.0\VC\Include。 它會顯示兩個繼承的值:$(VC_IncludePath) 和 $(WindowsSDK_IncludePath)。 已選取 [繼承自父代或項目預設值] 的複選框。
在屬性編輯器中,選擇 巨集 按鈕即可查看可用的巨集及其當前值。 下圖顯示屬性編輯器中的 Include 目錄 屬性在選取 巨集 按鈕之後。 當勾選「 繼承自父」或「專案預設值 」的勾選框並新增新值時,該值會附加到目前正在繼承的值上。 如果您清除複選框,新的值會取代繼承的值。 在大部分情況下,請保持複選框的選取狀態。
[包含目錄] 的屬性編輯器已開啟。 評估的值會連同繼承的值一起顯示。 清單框包含各種巨集及其值,例如設定為 Unicode 的 $(CharacterSet)。
將 include 目錄新增至預設目錄集
當你在專案中新增 include 目錄時,不要覆蓋所有預設目錄。 附加新路徑,例如 C:\MyNewIncludeDir\,然後將 $(IncludePath) 巨集附加到屬性值上。
快速流覽和搜尋所有屬性
[所有選項] 屬性頁 (在 [屬性頁] 對話方塊中的 [>C/C++] 節點底下,可讓您快速瀏覽和搜尋目前內容中可用的屬性。 它具有特殊的搜尋方塊和簡單的語法,可協助您篩選結果:
無前置詞:僅搜尋屬性名稱(不區分大小寫的子字串)。
'
/' 或 '-:只在編譯程序參數中搜尋 (不區分大小寫的前置詞)。v:只在值中搜尋 (不區分大小寫的子字串)。
設定組建的環境變數
MSVC 編譯程式 (cl.exe) 會辨識某些環境變數,特別是 LIB、 LIBPATHPATH和 INCLUDE。 當你用 IDE 建置時, VC++ 目錄屬性頁 中設定的屬性會設定那些環境變數。 如果 LIB、 LIBPATH和 INCLUDE 值已經設定,例如由開發者命令提示字元設定,建置程序會將它們替換為對應的 MSBuild 屬性的值。 建置過程會將「VC++ 目錄」中「可執行檔目錄」屬性的值加到 PATH 前面。 您可以建立使用者定義的巨集,然後核取 [ 將此巨集設定為建置環境中的環境變數] 方塊,以設定使用者定義的環境變數。
設定偵錯會話的環境變數
在專案 [屬性頁] 對話框的左窗格中,展開 [ 組態屬性 ],然後選取 [ 偵錯]。
在右窗格中,修改 [環境 ] 或 [ 合併環境] 專案設定,然後選擇 [ 確定 ] 按鈕。