C++ メイクファイル プロジェクトを作成する
"メイクファイル" とは、一連のソース コード ファイルをコンパイルしてリンクする (または "ビルド" する) ための手順を含んだテキスト ファイルです。 プログラム (多くの場合 "メイク" プログラムと呼ばれます) によってメイクファイルが読み取られ、コンパイラ、リンカー、また場合によっては他のプログラムが呼び出され、実行可能ファイルが作成されます。 Microsoft のプログラムは NMAKE と呼ばれます。
既存のメイクファイル プロジェクトがある場合、Visual Studio IDE で編集、ビルド、デバッグを行うには、次の選択肢があります。
- 既存のメイクファイルを使用して、Visual Studio で IntelliSense に使用する .vcxproj ファイルを構成するメイクファイル プロジェクトを、Visual Studio で作成します。 (ネイティブ MSBuild プロジェクトで取得するすべての IDE 機能はありません)。以下の「 メイクファイル プロジェクトを作成する を参照してください。
- [既存コード ファイルからの新しいプロジェクトの作成] ウィザードを使用し、ソース コードからネイティブ MSBuild プロジェクトを作成します。 元のメイクファイルはもう使用されなくなります。 詳細については、「方法 : 既存のコードから C++ プロジェクトを作成する」を参照してください。
- Visual Studio 2017 以降: [フォルダーを開く] 機能を使用して、MSBuild システムを介すことなく、メイクファイル プロジェクトをそのまま編集およびビルドします。 詳細については、「Open Folder projects for C++」 (C++ の [フォルダーを開く] プロジェクト) をご覧ください。
- Visual Studio 2019 以降: Linux 用の UNIX メイクファイル プロジェクトを作成します。
Visual Studio 2017 以降では、メイクファイル プロジェクト テンプレートは、C++ デスクトップ開発ワークロードがインストールされているときに利用できます。
ウィザードに従い、メイクファイルによって使用されるコマンドと環境を指定します。 その後、このプロジェクトを使用して、Visual Studio でコードをビルドできます。
既定では、ソリューション エクスプローラーにメイクファイル プロジェクトのファイルは表示されません。 メイクファイル プロジェクトで指定したビルド構成は、プロジェクトのプロパティ ページに反映されます。
プロジェクトで指定する出力ファイルは、ビルド スクリプトによって生成されるファイルの名前には影響しません。 単に意図が宣言されるだけです。 メイクファイルでは、引き続きビルド プロセスの制御とビルド ターゲットの指定を行います。
Visual Studio のメイン メニューで、[ファイル]>[新規]>[プロジェクト] を選択し、検索ボックスに「makefile」と入力します。 複数のプロジェクト テンプレートが表示される場合は、ターゲット プラットフォームに応じて各オプションから選択してください。
Windows のみ: メイクファイル プロジェクトの [デバッグ構成の設定] ページで、デバッグと製品版ビルドに対してコマンド、出力、クリーンアップ、リビルドに関する情報を指定します。 リリース構成に別の設定を指定する場合は、[次へ] を選択します。
[完了] を選択してダイアログを閉じ、ソリューション エクスプローラーで新しく作成したプロジェクトを開きます。
Visual Studio のスタート ページで、[新しいプロジェクト] 検索ボックスに「makefile」と入力します。 あるいは、[新しいプロジェクト] ダイアログ ボックスで [Visual C++]、[全般] (Visual Studio 2015) または [その他] (Visual Studio 2017) の順に展開し、[テンプレート] ウィンドウの [メイクファイル プロジェクト] を選択してプロジェクト ウィザードを開きます。
[アプリケーションの設定] ページで、デバッグと製品ビルドに対してコマンド、出力、クリーンアップ、およびリビルドに関する情報を指定します。
[完了] を選択してウィザードを閉じ、ソリューション エクスプローラーで新しく作成したプロジェクトを開きます。
プロジェクトのプロパティは、プロパティ ページで表示および編集できます。 プロパティ ページの表示については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関するページを参照してください。
メイクファイル プロジェクトを作成すると、プロジェクトのプロパティ ページの Nmake ページで次のオプションを表示し、編集できます。
ビルド コマンド ライン: ユーザーが [ビルド] メニューから [ビルド] を選択したときに実行するコマンド ラインを指定します。 プロジェクトのプロパティ ページの Nmake ページにある [ビルド コマンド ライン] フィールドに表示されます。
出力: コマンド ラインの出力が含まれるファイルの名前を指定します。 既定では、このオプションはプロジェクト名に基づきます。 プロジェクトのプロパティ ページの Nmake ページにある [出力] フィールドに表示されます。
クリーン コマンド: ユーザーが [ビルド] メニューから [クリーン] を選択したときに実行するコマンド ラインを指定します。 プロジェクトのプロパティ ページの Nmake ページにある [クリーン コマンド ライン] フィールドに表示されます。
リビルド コマンド ライン: ユーザーが [ビルド] メニューから [リビルド] を選択したときに実行するコマンド ラインを指定します。 プロジェクトのプロパティ ページの Nmake ページにある [すべてリビルド コマンド ライン] フィールドに表示されます。
特定のプロジェクト設定またはコンパイラ オプションが間違っていると、メイクファイル プロジェクトで IntelliSense が失敗します。 次の手順に従って、IntelliSense が想定どおりに動作するようにメイクファイル プロジェクトを構成します。
[プロパティ ページ] ダイアログ ボックスを開きます。 詳しくは、「Visual Studio で C++ コンパイラとビルド プロパティを設定する」をご覧ください。
[構成プロパティ]>[NMake] プロパティ ページを選択します。
必要に応じて、[IntelliSense] のプロパティを変更します。
[プリプロセッサの定義] プロパティでメイクファイル プロジェクトのプリプロセッサ シンボルを定義します。 詳細については、「
/D
(プリプロセッサ定義)」を参照してください。メイクファイル プロジェクトのプリプロセッサ ディレクティブに渡されるファイル参照を解決する目的でコンパイラが検索するディレクトリの一覧を、[インクルードの検索パス] プロパティで指定します。 詳細については、「
/I
(追加インクルード ディレクトリ)」を参照してください。コマンド ウィンドウから CL.EXE を利用してビルドするプロジェクトの場合、メイクファイル プロジェクトのプリプロセッサ ディレクティブに渡されるファイル参照を解決する目的でコンパイラが検索するディレクトリの一覧を、INCLUDE 環境変数で指定します。
[強制インクルード] プロパティで、メイクファイル プロジェクトのビルド時に処理するヘッダー ファイルを指定します。 詳細については、「
/FI
(強制インクルード ファイルの名前の指定)」を参照してください。プロジェクトの .NET アセンブリの参照を解決する目的でコンパイラが検索するディレクトリの一覧を [アセンブリの検索パス] プロパティで指定します。 詳細については、「
/AI
(メタデータ ディレクトリの指定)」を参照してください。[アセンブリの強制使用] プロパティで、メイクファイル プロジェクトのビルド時に処理する .NET アセンブリを指定します。 詳細については、「
/FU
(強制 #using ファイルの名前の指定)」を参照してください。C++ ファイルの解析時に IntelliSense によって使用されるその他のコンパイラ スイッチを [追加のオプション] プロパティで指定します。
[OK] を選んで、プロパティ ページを閉じます。
[すべて保存] コマンドを使用し、変更後のプロジェクト設定を保存します。
次回、Visual Studio 開発環境でメイクファイル プロジェクトを開くとき、[ソリューションのクリーン] コマンドを実行し、それからメイクファイル プロジェクトで [ソリューションのビルド] コマンドを実行します。 IntelliSense が IDE で正しく動作するはずです。
IntelliSense の使用
NMAKE リファレンス
方法 : 既存のコードから C++ プロジェクトを作成する
メイクファイル内の特殊文字
メイクファイルの内容と機能