一汁三菜

自分が楽しいと思うこと、マラソン、旅行、その他日々の記録をしたい。

Hello, World

次に示すような何の変哲もないHello, Worldプログラムを題材にして、CMakeを使ってプログラムをビルドする為の手順を追っていきます。次のコードをhello.cという名前で保存して下さい。

#include <stdio.h>
int main(void) {
  printf("Hello, World\n");
  return 0;
}

次にCMakeLists.txtという名前で、次のような内容のファイルを作成します。これがCMakeがプログラムのビルドの為に使うファイルです。

CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT(myhello)

ADD_EXECUTABLE(hello hello.c)

さて、Makefileを作りましょう。autotoolsで言うところの「configureの実行」にあたります。

$ cmake .

末尾のピリオドを忘れないで下さい。これを忘れるとUsageを表示して止まってしまいます。
実行すると、コンパイラのパスなどをチェックした後、Makefileが出来上がります。後はいつも通りにmakeを実行すれば、いつもと少し違うカラフルなビルド過程を経た後に、実行ファイルhelloが出来上がります。

autotoolsでは、いくつもファイルを用意していくつもコマンドを打ち込まないとMakefileが出来上がりません。その反面、CMakeは(今のところ)書く事が少なくて、コマンド一発でMakefileが作成できます。逆にautotoolsではMakefileの作成に特別なツールは必要ありませんが、CMakeではCMakeがインストールされている必要があります。ただしこれは後述するようにUnix互換OS以外にWindowsまでサポートする為には仕方の無い事ではあります。

Windows

CMakeはWindowsもサポートしています。Windows版CMakeをインストールして、上述のファイルを用意した後でコマンドプロンプトから次のようにcmakeを実行して下さい。コンパイラがあるフォルダにパスを通しておくのを忘れずに。

> cmake -G "Visual Studio 9 2008" .

すると、myhello.slnというVisual Studioのソリューションファイルが出来上がります。後はいつも通り、IDE上でビルドを実行すればコンパイル出来ます。

いちいちIDEを使いたくないという硬派な方は、-Gオプションに"Visual Studio 9 2008"の代わりに"NMake Makefiles"を指定すれば、nmake用のMakefileが生成されます。