建立 C++ Makefile 專案
makefile 是一個文本檔,其中包含如何編譯和連結(或建置)一組原始碼檔案的指示。 程式(通常稱為 make程式)會讀取makefile ,並叫用編譯程式、連結器,以及可能建立可執行檔的其他程式。 Microsoft程式稱為 NMAKE。
如果您有現有的 makefile 專案,如果您想要在 Visual Studio IDE 中編輯、建置和偵錯,您有下列選擇:
- 在 Visual Studio 中建立 Makefile 專案,以使用現有 Makefile 來設定讓 Visual Studio 用於 IntelliSense 的 .vcxproj 檔案。 (您不會擁有使用原生 MSBuild 專案取得的所有 IDE 功能。請參閱 下方的 建立Makefile專案 。
- 使用 [從現有程式碼檔建立新專案精靈],從您的原始程式碼建立原生 MSBuild 專案。 不再使用原始的makefile。 如需詳細資訊,請參閱如何:從現有程式碼建立 C++ 專案。
- Visual Studio 2017 和更新版本:使用 [開啟資料夾 ] 功能,以現成方式編輯和建置 makefile 專案,而不需要 MSBuild 系統的任何參與。 如需詳細資訊,請參閱 Open Folder projects for C++ (適用於 C++ 的開啟資料夾專案)。
- Visual Studio 2019 和更新版本:建立適用於Linux的UNIX makefile專案。
使用makefile項目範本建立makefile專案
在 Visual Studio 2017 和更新版本中,已安裝 C++ 桌面開發工作負載時,可以使用 Makefile 專案範本。
遵循精靈來指定 Makefile 所使用的命令和環境。 然後您就可以使用這個專案在 Visual Studio 中建置您的程式碼。
根據預設,Makefile 專案在 [方案總管] 中不會顯示任何檔案。 Makefile 專案指定的建置設定,會反映在專案的屬性頁中。
您在專案中指定的輸出檔不會影響建置文稿產生的名稱。 它只宣告意圖。 您的 Makefile 仍會控制建置程序並指定建置目標。
在 Visual Studio 中建立 makefile 專案
從 Visual Studio 主功能表中,選擇 [檔案]>[新增]>[專案],然後在 [搜尋] 方塊中輸入 "makefile"。 如果您看到多個項目範本,請根據您的目標平臺從選項中選取。
僅限 Windows:在 Makefile 專案 [偵錯組態設定 ] 頁面中,提供偵錯和零售組建的命令、輸出、清除和重建資訊。 如果您想要指定 [發行] 組態的不同設定,請選擇 [下一步 ]。
選擇 [完成] 關閉對話框,並在 方案總管 中開啟新建立的專案。
在 Visual Studio 2015或 Visual Studio 2017 中建立 Makefile 專案
在 Visual Studio 起始畫面的 [新增專案] 搜尋方塊中鍵入 "makefile"。 或者,在 [新增專案] 對話方塊中,展開 [Visual C++]>[一般] (Visual Studio 2015) 或 [其他] (Visual Studio 2017,然後選取 [範本] 窗格中的 [Makefile 專案] 以開啟專案精靈。
在 [應用程式設定] 頁面中,提供偵錯和零售組建的命令、輸出、清除和重建資訊。
選擇 [完成] 關閉精靈,並在 方案總管 中開啟新建立的專案。
您可以在屬性頁檢視和編輯專案的屬性。 如需顯示屬性頁的詳細資訊,請參閱 在Visual Studio中設定C++編譯程式和建置屬性。
Makefile 專案精靈
建立 Makefile 專案之後,即可在專案屬性頁的 [Nmake] 頁面檢視和編輯下列每個選項。
建置命令行: 指定要在使用者從 [建置] 功能選取 [建置] 時執行的命令行。 顯示在專案屬性頁中 [Nmake] 頁面的 [建置命令列] 欄位。
輸出: 指定將包含命令行輸出的檔名。 根據預設,這個選項是根據專案名稱。 顯示在專案屬性頁中 [Nmake] 頁面的 [輸出] 欄位。
清除命令: 指定要在使用者從 [建置] 功能選取 [清除] 時執行的命令行。 顯示在專案屬性頁中 [Nmake] 頁面的 [清除命令列] 欄位。
重建命令列: 指定要在使用者從 [建置] 功能選取 [重建] 時執行的命令行。 顯示在專案屬性頁中 [Nmake] 頁面的 [全部重建命令列] 欄位。
如何:在 Makefile 專案中啟用 IntelliSense
不正確地設定某些專案設定或編譯器選項時,Makefile 專案中的 IntelliSense 會無法運作。 請遵循下列步驟來設定 Makefile 專案,讓 IntelliSense 可以正常運作:
開啟 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性。
選取 [組態屬性 NMake]>屬性頁面。
視需要修改 IntelliSense 底下的屬性:
設定 [前置處理器定義] 屬性,在 makefile 專案中定義任何前置處理器符號。 如需詳細資訊,請參閱
/D
(預處理器定義)。設定 [包含搜尋路徑] 屬性,指定編譯器會搜尋的目錄清單,以便解析傳遞至 makefile 專案中之前置處理器指示詞的檔案參考。 如需詳細資訊,請參閱
/I
(其他 Include 目錄)。對於使用 CL.EXE 從命令視窗建置的專案,設定 INCLUDE 環境變數,指定編譯器會搜尋的目錄清單,以便解析傳遞至 makefile 專案中之前置處理器指示詞的檔案參考。
設定 [強制包含] 屬性,以指定在建置 makefile 專案時,要處理的標頭檔。 如需詳細資訊,請參閱
/FI
(名稱強制包含檔案)。設定 [組件搜尋路徑] 屬性,指定編譯器會搜尋的目錄清單,以便解析對您專案中 .NET 組件的參考。 如需詳細資訊,請參閱
/AI
。設定 [強制使用組件] 屬性,以指定在建置 makefile 專案時,要處理的 .NET 組件。 如需詳細資訊,請參閱
/FU
(名稱強制 #using 檔案)。設定 [其他選項] 屬性,以指定剖析C++檔案時,IntelliSense 要使用的其他編譯程序參數。
選擇 [確定] 關閉屬性頁。
使用 [全部儲存] 命令,儲存修改過的專案設定。
下次您在 Visual Studio 開發環境中開啟 makefile 專案,對您的 makefile 專案執行 [清除方案] 命令,然後執行 [建置方案] 命令。 IntelliSense 應該在 IDE 中正常運作。
另請參閱
Using IntelliSense
NMAKE 參考
如何:從現有的程式代碼建立C++專案
Makefile 中的特殊字元
Makefile 內容和功能