ラズベリーパイ上で動作していた 9va-pi のmakefile が ubuntu で動かなかった。
発生したエラーと修正した点は以下のとおり。
glibconfig.h:そのようなファイルやディレクトリはありません。
glib のインクルードファイルが環境によって違うらしい。 pkg-configを使うとよい
CFLAGS = `pkg-config --cflags --libs gtk+-3.0`
LDFLAGS = `pkg-config --cflags --libs gtk+-3.0`
にすると解決
'sqrt' に対する定義されていない参照です
リンクオプションの位置に関係するらしい。
$(CC) $(LDFLAGS) $(OBJECTS) -o $@
だとだめで、以下のようにリンクオプションを後ろにするとOK
$(CC) $(OBJECTS) $(LDFLAGS) -o $@
acos@@GLIBC_2.0' への未定義参照です
sin, cos には必要ないが、acos には、-lm オプションが必要
LDFLAGS = -lm `pkg-config --cflags --libs gtk+-3.0`
この修正を行うと、ラズベリーパイで動作していた make がそのまま ubuntu でも実行できた。
つまり、ubuntu 版 9va-pi ができた。ラズベリーパイより速い。
こうなると、中古PC に ubuntuを入れてラズベリーパイのディスプレイにするよりも、ubuntu版の 9va-pi を使うったほうがよいのではないか?うーむ。
まあ、両方あってもよいか。すくなくとも、ubuntu のほうが開発は速い。ubuntuだと、SVG出力で落ちるようだし、しばらく ubuntuで開発してみるか。ただ アプリの名前は、9va-pi とし、あくまでラズベリーパイ用のアプリとしよう。今回、Let'sNoteには問題なく ubuntu がはいったが、中古PCによっては、導入に失敗することもありえるだろうし。
ラズベリーパイの購入>自分用ディスプレイに中古PCを入手>OSはそのままで、VNCをいれてラズベリーパイのディスプレイにする>やってみたい人は ubuntu を導入>remmina(VNC)を使ってラズベリーパイのディスプレイにする>ubuntu版9va-pinの導入
という流れにしよう。