Bonanza 6.0 のビルドエラー
Bonanza 6.0 をビルドする際、20分ほど嵌った。
環境は Ubuntu 12.04, gcc4.6.3, GNU Make 3.81
$ make gcc
で良いけれど、sqrt や pthread_create が見つからないとかで gcc に怒られる。
ちゃんと math.h や pthread.h は include してあるし、Makefile も
gcc: $(MAKE) CC=gcc CFLAGS='-std=gnu99 -O2 -Wall $(OPT)' LDFLAG1='-lm -lpthread' bonanza bonanza : $(OBJS) $(CC) $(LDFLAG1) -o bonanza $(OBJS) $(LDFLAG2)
と、 -lm, -lpthread が付いているので問題無いように見える。
じゃあ何が問題かというと、LDFLAG1 の位置だった。
bonanza : $(OBJS) $(CC) -o bonanza $(OBJS) $(LDFLAG1) $(LDFLAG2)
のように、$(OBJS) の後ろに $(LDFLAG1) を書くことで、リンクエラーしなくなる。
(OS 入れ替える前は問題無くビルド出来ていたので、GCC が悪いのか Bonanza が悪いのかよく分かりませんが……)