Share via


建立 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 專案

  1. 從 Visual Studio 主功能表中,選擇 [檔案]>[新增]>[專案],然後在 [搜尋] 方塊中輸入 "makefile"。 如果您看到多個專案範本,請根據您的目標平臺從選項中選取。

  2. 僅限 Windows:在 [Makefile 專案 偵錯組態] 設定 頁面中,提供偵錯和零售組建的命令、輸出、清除和重建資訊。 如果您想要指定 [發行] 組態的不同設定,請選擇 [下一步 ]。

  3. 選擇 [完成 ] 關閉對話方塊,並在 方案總管 開啟新建立的專案。

在 Visual Studio 2015或 Visual Studio 2017 中建立 Makefile 專案

  1. 在 Visual Studio 起始畫面的 [新增專案] 搜尋方塊中鍵入 "makefile"。 或者,在 [新增專案] 對話方塊中,展開 [Visual C++]>[一般] (Visual Studio 2015) 或 [其他] (Visual Studio 2017,然後選取 [範本] 窗格中的 [Makefile 專案] 以開啟專案精靈。

  2. [應用程式設定] 頁面中,提供偵錯和零售組建的命令、輸出、清除和重建資訊。

  3. 選擇 [完成 ] 以關閉精靈,並在 方案總管 開啟新建立的專案。

您可以在屬性頁檢視和編輯專案的屬性。 如需顯示內容頁的詳細資訊,請參閱 在 Visual Studio 中設定 C++ 編譯器和建置屬性。

Makefile 專案精靈

建立 Makefile 專案之後,即可在專案屬性頁的 [Nmake] 頁面檢視和編輯下列每個選項。

  • 建置命令列: 指定要在使用者從 [建置] 功能表中選取 [建置] 時執行的命令列。 顯示在專案屬性頁中 [Nmake] 頁面的 [建置命令列] 欄位。

  • 輸出: 指定將包含命令列輸出的檔案名。 根據預設,這個選項是根據專案名稱。 顯示在專案屬性頁中 [Nmake] 頁面的 [輸出] 欄位。

  • 清除命令: 指定要在使用者從 [建置] 功能表中選取 [清除] 時執行的命令列。 顯示在專案屬性頁中 [Nmake] 頁面的 [清除命令列] 欄位。

  • 重建命令列: 指定要在使用者從 [建置] 功能表中選取 [重建] 時執行的命令列。 顯示在專案屬性頁中 [Nmake] 頁面的 [全部重建命令列] 欄位。

如何:在 Makefile 專案中啟用 IntelliSense

不正確地設定某些專案設定或編譯器選項時,Makefile 專案中的 IntelliSense 會無法運作。 請遵循下列步驟來設定 Makefile 專案,讓 IntelliSense 可以正常運作:

  1. 開啟 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性

  2. 選取 [ 組態屬性 NMake ] > 屬性頁面。

  3. 視需要修改 IntelliSense 底下 的屬性:

    • 設定 [前置處理器定義] 屬性,在 makefile 專案中定義任何前置處理器符號。 如需詳細資訊,請參閱 /D (預處理器定義)。

    • 設定 [包含搜尋路徑] 屬性,指定編譯器會搜尋的目錄清單,以便解析傳遞至 makefile 專案中之前置處理器指示詞的檔案參考。 如需詳細資訊,請參閱 /I (其他 Include 目錄)。

    • 對於使用 CL.EXE 從命令視窗建置的專案,設定 INCLUDE 環境變數,指定編譯器會搜尋的目錄清單,以便解析傳遞至 makefile 專案中之前置處理器指示詞的檔案參考。

    • 設定 [強制包含] 屬性,以指定在建置 makefile 專案時,要處理的標頭檔。 如需詳細資訊,請參閱 /FI (名稱強制包含檔案)。

    • 設定 [組件搜尋路徑] 屬性,指定編譯器會搜尋的目錄清單,以便解析對您專案中 .NET 組件的參考。 如需詳細資訊,請參閱 /AI

    • 設定 [強制使用組件] 屬性,以指定在建置 makefile 專案時,要處理的 .NET 組件。 如需詳細資訊,請參閱 /FU (名稱強制 #using 檔案)。

    • 設定 [其他選項] 屬性,以指定剖析 C++ 檔案時 IntelliSense 要使用的其他編譯器參數。

  4. 選擇 [確定] 關閉屬性頁。

  5. 使用 [全部儲存] 命令,儲存修改過的專案設定。

下次您在 Visual Studio 開發環境中開啟 makefile 專案,對您的 makefile 專案執行 [清除方案] 命令,然後執行 [建置方案] 命令。 IntelliSense 應該在 IDE 中正常運作。

另請參閱

Using IntelliSense
NMAKE 參考
如何:從現有的程式碼建立 C++ 專案
Makefile 中的特殊字元
Makefile 內容和功能