Raspberry Pi 3B+欲しいなあ。
しかし最近仕事が異様に忙しくなったので、余計なことしてられる時間がない。。。
このブログも最後の更新が3月とか色々ひどい。
ちょっと前まで、おいらニートに念願のジョブチェンジ!とか言ってたのが夢のようです。
(´・ω・`)
そんな忙しい中、合間見つけてちまちまやっているおっさんの物語。
夏なのでRaspberry Pi 2が発熱が低いので、夏場の簡易デスクトップとして大活躍です。
そしてふと気がつくとRaspbianがStretchになってたので、以前のJessieを消してアップグレードしました。
アップグレード後、xnp2をビルドしようとしたら、
こんなの出てコンパイルが止まる。
0.86で止まってるし、そろそろコンパイル通らなくなるだろうな、と思ったらやっぱりでした。
ソース追っかけた結果、x11ディレクトリ内にあるcompiler.h内で定義されてるマクロであるmin,maxがstd_algobase.h内にある同様のマクロと衝突しているのが原因みたい。
対処法として、とりあえずエラー出るソースの先頭付近にある、
#include "compiler.h"
行の直下に、
#include "compiler.h"
#undef min
#undef max
compiler.h内のmin,maxをundefして対処したら無事ビルド成功。
楽するために、とりあえずパッチを作ってみた。
http://akifuyu.sakura.ne.jp/blog/binary/xnp2-macro_fix.patch
ソースを解凍したら、xnp2-0.86ディレクトリ内に入って同パッチを保存。
$ patch -p1 < xnp2-macro_fix.patch
で、パッチを当てたらx11ディレクトリ内に入って./configureしてmake。
ビルドする際の./configureで必ずCFLAGSとCXXFLAGSに最低限-O2を指定すること。
これやらないとパフォーマンスがかなり落ちます。
後、とりあえずエラー出なくなる範囲でしか修正していません。
パッチ当ててももしかしたらエラー出るかもしれないので、その時はエラー出ているソースを上記の方法で修正してみてください。