HYPER MIKAN BOX
検索
最近の変更
メディアマネージャー
サイトマップ
文書の表示
以前のリビジョン
バックリンク
ログイン
トレース:
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== CMakeを使ったHello World ====== {{:fltk:fltk_shadow.png?200|FLTK}} ===== 前提 ===== [[install|FLTKのインストール]]に従って、FLTK 1.4.3が $HOME/MikanBox 以下にインストールされているものとします。 違う場所にインストールした場合は(そうであっても全く問題ありません)、パスをご自身のものに置き換えてください。 CMakeもインストールされている必要があります。 ===== 作業ディレクトリの用意 ===== 作業ディレクトリは $HOME/code/fltk/hello-fltk-cmake とします。 ここに作成するプログラムのソースコードを保存して、また、ここでビルドを行います。 <note> 繰り返しになりますが、こういった名前やパスは、何かしら決めておかないと説明がしづらいので提示しているだけです。 同じ名前にする必要は全くありません。 ご自身の好みの場所に好きな名前で作成してください。 </note> まずディレクトリを作成して、そこに移動しておきます。 <cli> $ mkdir -p ~/code/fltk/hello-fltk-cmake $ cd $_ </cli> ===== プログラムのソースコード ===== プログラムのソースコード[[fltk:helloworld#プログラムのソースコード|前回のHello World]]で使用したものと全く同じです。 main.cppという名前でコピーを作成しておきます。 ===== CMakeLists.txt ===== __CMakeLists.txt__: <code cmake> 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) </code> 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が利用可能になります。 [[https://cmake.org/cmake/help/latest/command/find_package.html|find_package]]には多数のオプションが存在していて、細かな調整が可能です。 あまり詳細に踏み込みたくはないので、今回は最低限のオプションのみ指定しました。 ===== ビルドディレクトリの作成 ===== 現在の作業ディレクトリhello-fltk-cmakeの中にbuildという名前のディレクトリを作成して、その中に移動します。 <cli> $ mkdir build $ cd build </cli> ===== CMakeコンフィギュレーションの実行 ===== buildディレクトリの中でcmakeコマンドを実行します。 <cli> $ cmake .. -DCMAKE_PREFIX_PATH=~/MikanBox </cli> CMAKE_PREFIX_PATHにFLTKをインストールしたパスを設定するのが最大のポイントです。 もし標準的なディレクトリFLTKをインストールしたのであれば不要なオプションです。 しかし、今回のように非標準的な場所にインストールした場合であっても、柔軟かつ簡単に対処できるのはCMakeの強みの一つと言えます。 ===== ビルドの実行 ===== CMakeコンフィギュレーション時に「-G」で指定しなければ、大抵はMakefileが生成されます。 もしかしたらbuild.ninjaやそれ以外のケースがあるかもしれませんので、少し注意して経過を観察してみてください。 Makefileが生成されているのであればmakeを実行します。 <cli> $ make </cli> もしbuild.ninjaが生成されているのであればninjaを実行します。 <cli> $ ninja </cli> どのビルドツールを実行するのかの判断をCMakeにまかせてしまう場合はcmakeをを実行します。 <cli> $ cmake --build . </cli> ==== 結果の確認 ==== ソースコード(hello-fltk-cmake.cpp)に問題がなければ、ビルドに成功して実行可能バイナリファイルが生成されます。 <cli> $ 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 ←生成された実行可能バイナリファイル </cli> ===== Hello Worldプログラムの実行 ===== 最後に、生成された実行可能バイナリファイルを実行して、プログラムが起動することを確認しておきましょう。 <cli> $ ./hello-fltk-cmake </cli> うまく行けばウィンドウが表示されます。 {{ :fltk:fltk_hello_cmake.jpg |Hello FLTK}} お疲れ様でした!
文書の先頭へ