====== FLTKのインストール ======
[[fltk:|{{:fltk:fltk_shadow.png?200|}}]]
FLTKのアプリケーションを開発するのに必要なものは、たいてい使用しているLinuxディストリビューションのパッケージマネージャーで簡単にインストールできます。
しかし、一つだけ考慮すべき点があります。
2025年5月時点では、FLTK 1.4が最新の安定バージョンで、リリースされてから半年ほど経過しています。
まだ過渡期にあり、ほとんどのLinuxディストリビューションがFLTK 1.3のみしか提供していません(([[https://packages.ubuntu.com/questing/libfltk1.4-dev|Ubuntuの場合、次のリリースである25.10 (Questing Quokka)で提供されます]]。))。
したがって、FLTK 1.4をソースからビルドして利用するか、パッケージマネージャで簡単にインストールできるFLTK 1.3を利用するかを判断しなければなりません。
まず、FLTKのバージョンについて軽く確認しておくことにします。
===== FLTKのバージョン =====
FLTK 1.5.x:
次期バージョンであり、現在進行中で活発に開発が行われています。
まだ正式なリリースはされていません。
今の段階で採用するのは時期尚早です。
**FLTK 1.4.x**:
現時点で最新の安定バージョンです。
2024年11月に1.4.0が正式にリリースされました。
公式にもこのバージョンを採用することが推奨されています。
**FLTK 1.3.x**:
一つ前の安定バージョンです。
長い間最新の安定バージョンの座に君臨していたため、まだ最も広く使われています。
多くのLinuxディストリビューションのパッケージマネージャーが提供するのもこのバージョンです。
今後、機能追加のアップデートは行われず、バグ修正のアップデートのみ継続して提供されます。
FLTK 1.1.xとFLTK 1.0.x:
更に前の安定バージョンです。
すでに開発は完全に終了していて、どのようなアップデートも提供されません。
今から採用するべきではありません。
その他:
FLTK 1.2は正式にリリースされることはありませんでした。
過去にAPIを刷新したFLTK 2及びFLTK 3の開発が試みられたこともありましたが、もはや継続されていません。
参考:
[[https://www.fltk.org/articles.php?L825+I0+T+P1+Q|Article #825: What are the Versions of FLTK?]]
==== FLTK 1.3と1.4のどちらを使うか ====
FLTK 1.3を使うかFLTK 1.4を使うかは悩ましい問題です。
Linuxディストリビューションのパッケージマネージャーでインストールできる1.3は、1.4をソースからシステムにインストールすると、共存できるようにはなっていません。
何も考えずに両方ともシステムにインストールしてしまうと、後々問題が発生する可能性は極めて高いです。
もちろん、ソースからビルドするのであれば細かな調整できるので、工夫すれば共存することもできます。
__このチュートリアルではFLTK 1.4を使用します__。
そして、__学習と実験のためと割り切って__、ディストリビューションのパッケージシステムに影響を及ぼさないように暫定的な方法を取ります。
FLTK 1.4をソースからビルドして、システム全体のディレクトリにインストールするのではなく、ユーザーのホームディレクトリ以下にインストールします。
FLTK 1.4を利用するプログラムは、ビルド時に明示的にそのホームディレトリ以下のパスを指定するようにします。
近いうちにほとんどのLinuxディストリビューションがFLTK 1.4の提供を始めることが期待されます。
そのときには迷うことなくFLTK 1.4を利用すれば良いでしょう。
===== FLTK 1.4のビルド・インストール手順 =====
やらないといけないことは以下のとおりです。
- FLTK 1.4.3のソースコードの入手 (2025年5月時点で最新版)
- ソースアーカイブの展開
- CMakeコンフィギュレーションの実行
- ビルド実行
- インストール実行
- サンプルプログラムを書いて実行できることを確認
あまりに長くなるのを避けるために、サンプルプログラムの実行は次回に回すことにします。
ここで紹介するインストール手順はあくまで一例に過ぎません。
ただし、以降のチュートリアルを通してこの方法でインストールされたことを前提としています。
別の方法でインストールした場合は、適宜読み替えてください。
==== ソースコードの入手 ====
ソースコードはFLTKのホームページからダウンロードできます。
(([[https://github.com/fltk/fltk|GitHubでホスティングされているのGitリポジトリ]]を利用しても構いません。その場合、release-1.4.3のタグにチェックアウトします。))
* https://www.fltk.org/software.php
このページに **fltk-1.4.3-source.tar.gz** というファイルへのリンクがあるので、それをダウンロードします。
{{ :fltk:fltk_download_page_1_4_3.jpg?800 |FLTK 1.4.3 download page}}
==== ソースアーカイブの展開 ====
ダウンロードしたファイルのフォルダを開きます。
ファイル **fltk-1.4.3-source.tar.gz** が存在していることを確認してください。
FirefoxなどのWebブラウザでダウンロードしたなら $HOME/ダウンロード に保存されています。
ファイルをダブルクリックするなどして展開することもできますが、ここではターミナルからコマンドラインで展開する方法をとります。
$ cd ~/ダウンロード
$ tar xzfv fltk-1.4.3-source.tar.gz
fltk-1.4.3というディレクトリができていることを確認します。
$ ls -l
合計 9068
drwxr-xr-x 22 freemikan freemikan 4096 4月 29 21:59 fltk-1.4.3
-rw-rw-r-- 1 freemikan freemikan 9279104 5月 22 21:10 fltk-1.4.3-source.tar.gz
このディレクトリを適当な場所に配置しておきましょう。
$ mkdir -p ~/code/external
$ mv fltk-1.4.3 ~/code/external
==== CMakeコンフィギュレーションの実行 ====
FLTKのソースには伝統的なconfigureスクリプトも提供されているのですが、同時にCMakeファイルも提供されています。
このチュートリアルではCMakeを利用します。
もしCMakeがシステムにインストールされていない場合はインストールします。
$ sudo apt install cmake
まず、先程展開したFLTKのソースディレクトリに移動します。
$ cd ~/code/external/fltk-1.4.3
ビルドディレクトを作成し、その中に移動します。
$ mkdir build
$ cd build
CMakeコンフィグレーションを実行します。
ここで重要な点は、インストール先のパスをデフォルトの/usr/localから変更することです。
システム全体で有効にはしたくないので、ホームディレクトリ以下の適当な場所にインストールします。
このチュートリアルでは目立たせるためにMikanBoxという少々ふざけた名前をつけます。
この名前は真似する必要はまったくありません。
ご自身の好みに合わせて適切な名前をつけてください。
CMakeにインストール先のパスを変更するように指定するには、**CMAKE_INSTALL_PREFIX**という変数にパスをセットします。
$ cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/MikanBox
参考までに上記コマンドを実行したときの完全な出力を[[logs:cmake-configure-fltk|こちら]]に掲載しておきます。
==== ビルド実行 ====
次のコマンドでビルドを実行します。
$ cmake --build . -j8
「-j8」は並列コンパイルを指示するものです。
CPUのコア数によってはかなりの高速化が見込めます。
実際のCPUのコア数に合わせて8を適当な数にしてください。
どのような数を指定するにせよ、よほど古いマシンでない限りはさほど時間がかからずビルドは完了します。
==== インストール実行 ====
インストールを実行する前に、正しくCMAKE_INSTALL_PREFIXで指定したパスが反映されているか、確認しておきます。
$ sh bin/fltk-config --prefix
/home/freemikan/MikanBox
もし期待通りの結果でなかった場合、一度踏みとどまって、CMakeコンフィギュレーションのステップを見直してください。
問題なければインストールを実行します。
$ cmake --install .
これで完了です。
$HOME/MikanBox/binにはFLTKで作られたサンプルゲームもインストールされます。
$ ls -l ~/MikanBox/bin
合計 15280
-rwxr-xr-x 1 freemikan freemikan 1987016 5月 22 21:32 blocks
-rwxr-xr-x 1 freemikan freemikan 2401488 5月 22 21:32 checkers
-rwxr-xr-x 1 freemikan freemikan 11911 5月 22 21:29 fltk-config
-rwxr-xr-x 1 freemikan freemikan 1707680 5月 22 21:32 fltk-options
-rwxr-xr-x 1 freemikan freemikan 4452944 5月 22 21:32 fluid
-rwxr-xr-x 1 freemikan freemikan 2153656 5月 22 21:32 glpuzzle
-rwxr-xr-x 1 freemikan freemikan 2920048 5月 22 21:32 sudoku
確認のため一度実行しておくと良いでしょう。
$ ~/MikanBox/bin/blocks
サンプルゲームをプレイ中の画面
{{ :fltk:playing_fltk_blocks_game.mp4?700 |FLTK Block Attack! プレイ中の画面}}
なかなか面白いゲームです。