文書の過去の版を表示しています。


CMakeを使ったHello World

FLTK

前提

FLTKのインストールに従って、FLTK 1.4.3が $HOME/MikanBox 以下にインストールされているものとします。 違う場所にインストールした場合は(そうであっても全く問題ありません)、パスをご自身のものに置き換えてください。

CMakeもインストールされている必要があります。

作業ディレクトリの用意

作業ディレクトリは $HOME/code/fltk/hello-fltk-cmake とします。 ここに作成するプログラムのソースコードを保存して、また、ここでビルドを行います。

繰り返しになりますが、こういった名前やパスは、何かしら決めておかないと説明がしづらいので提示しているだけです。 同じ名前にする必要は全くありません。 ご自身の好みの場所に好きな名前で作成してください。

まずディレクトリを作成して、そこに移動しておきます。

$ mkdir -p ~/code/fltk/hello-fltk-cmake
$ cd $_

プログラムのソースコード

プログラムのソースコード前回のHello Worldで使用したものと全く同じです。 main.cppという名前でコピーを作成しておきます。

CMakeLists.txt

CMakeLists.txt:

cmake_minimum_required(VERSION 3.10 FATAL_ERROR)

project(hello-fltk-cmake LANGUAGES CXX)

find_package(FLTK 1.4 REQUIRED CONFIG)

add_executable(hello-fltk-cmake main.cpp)

target_link_libraries(hello-fltk-cmake PRIVATE fltk::fltk)

CMake自体にFLTKのMODULEモードのコンフィギュレーション(FindFLTK.cmake)が同梱されています。 一方、FLTKもCMakeのコンフィギュレーションを提供しています。 なるべくFLTKが提供するものを利用するほうが良いでしょう。 FLTK 1.3まではMODULEモードのコンフィギュレーションが提供されていましたが、FLTK 1.4からCONFIGモードのコンフィギュレーションが提供されています。 上のCMakeLists.txtのように find_package(FLTK 1.4 REQUIRED CONFIG) の1行を含めるだけでFLTKが利用可能になります。 find_packageには多数のオプションが存在していて、細かな調整が可能です。 あまり詳細に踏み込みたくはないので、今回は最低限のオプションのみ指定しました。

ビルドディレクトリの作成

現在の作業ディレクトリhello-fltk-cmakeの中にbuildという名前のディレクトリを作成して、その中に移動します。

$ mkdir build
$ cd build

CMakeコンフィギュレーションの実行

buildディレクトリの中でcmakeコマンドを実行します。

$ cmake .. -DCMAKE_PREFIX_PATH=~/MikanBox

CMAKE_PREFIX_PATHにFLTKをインストールしたパスを設定するのが最大のポイントです。 もし標準的なディレクトリFLTKをインストールしたのであれば不要なオプションです。 しかし、今回のように非標準的な場所にインストールした場合であっても、柔軟かつ簡単に対処できるのはCMakeの強みの一つと言えます。

ビルドの実行

$ make

あるいは

$ cmake --build .

結果の確認

$ ls -l
合計 1664
-rw-rw-r-- 1 freemikan freemikan   12884  5月 23 01:32 CMakeCache.txt
drwxrwxr-x 6 freemikan freemikan    4096  5月 23 01:32 CMakeFiles
-rw-rw-r-- 1 freemikan freemikan    5347  5月 23 01:32 Makefile
-rw-rw-r-- 1 freemikan freemikan    1660  5月 23 01:32 cmake_install.cmake
-rwxrwxr-x 1 freemikan freemikan 1670960  5月 23 01:32 hello-fltk-cmake    ←生成された実行可能バイナリファイル

Hello Worldプログラムの実行

$ ./hello-fltk-cmake

Hello FLTK

文書の編集
文書の先頭へ