ことです)を用意することが一般的です。1つのプロジェクトには多くのソース・ファイルが含まれることが多く、個人で開発する場合でも十数個~数十個程度になることも少なくありません。そのようなプロジェクトでプログラムを修正して走らせる度に全てのソースをコンパイル/リンクしていると時間がかかりすぎて効率が悪いです。そこで、必要なソースだけをコンパイル/リンクするための仕組みがビルド・システムです。これを使うとデバッグの効率がたいへん上がります。(ですので、事実上必須と言っても過言ではないと思います。)ビルド・ツール問題しかし、問題があります。ビルド・システムはプロジェクト毎に多くの設定が必要になるため、その設定ファイルは一般に複雑です。プラットフォーム毎に使用できるビルド・システムは異なり、しかも設定方法がそれぞれで大きく異なります。従って、プラットフォーム毎にビルド・システムを構築する必要があるため、マルチ・プラットフォームなプログラムをビルドするのは予想以上にたいへんなのです。C++とgccではビルド・ツールの乖離が激しいため、両対応は憂鬱の極みです。これはCMakeLists.txtを記述することで各プラットフォーム用のビルド・システムを生成できるメタ・ツールです。C++でプログラムを記述すると(注意深さは必要ですが)マルチ・プラットフォームなプログラム開発が容易になります。記述するとマルチ・プラットフォーム対応のビルド・システムを比較的容易に構築できます。C++とgccの両方に対応することも現実的という神がかったツールなのです。C++とgccの両方に対応しているため、実はCMakeの習得は結構たいへんです。一度コツを掴めば、マルチ・プラットフォーム対応のC++プロジェクトを容易に開発できるようになります。私もCMakeについては学習途上ですが、CMakeの習得を多少なりとお手伝いできる程度には習得できたと思います。CMakeはC++以外の言語にも対応していますがC++で使われることが(恐らく最も)多いですのでC++応用講座としてCMake編をスタートします。最近は本業が忙しくてなかなか時間が取れないため、ときどき日曜日の夜に更新する予定です。以下は、解説記事の日付順のリストです。(アイキャッチ付きの逆順リストはこちらです。CMake編まとめ最後にちょっと宣伝させて下さい。テクノロジーでは高速・高生産性なC++の生産性を更に高める開発ツールTheolizer®を開発しています。連携機能も開発中です。テクノロジーの登録商標です。technology.。