[C++]109 FLTK : 静的ライブラリのリンク

[M1 Mac, Big Sur 11.6.7, clang 13.0.0, NO IDE]

配布したアプリの導入時にユーザーの方がHomebrewからFLTKをインストールするなどの作業をしなくても済む様、静的ライブラリとリンクさせました。

自製ライブラリも動的ライブラリから静的ライブラリに変更しています。静的ライブラリはビルド時にアプリ内に取り込まれます。

手順

1.コンパイルコマンドをチェックし、最低限必要なライブラリだけに絞り込む。

2.各ライブラリの静的ライブラリ(拡張子 a)を作成する。

# オブジェクトファイルを作成
clang++ -std=c++17 -I/code/cpp/mylib/include -g -o /code/cpp/mylib/lib/Split.o \
-c /code/cpp/mylib/src/Split.cpp

# 静的ライブラリを作成
ar r /code/cpp/mylib/lib/Split.a /code/cpp/mylib/lib/Split.o

3.Makefileでアプリをビルドする。

動的ライブラリの時は612KBだったアプリサイズが1.8MBになりました。単純な合計サイズより小さいのは、必要なクラスや関数だけ取り出しているためでしょう。

なおJava版は45.6MBになりますから、C++版の方がストレージへの負担はかなり小さくそして爆速です。起動が速すぎてちょっとビックリするレベルなので、可能なら少し遅めにしようかとも思っています。