[1138] Re:電卓:コンパイル出来ません:MacOSX
投稿者:(ぱ)こと管理人
2008/07/14 23:42:14
>13: CFLAGS = -c -g -Wall -I/opt/local/include
>14: INCLUDES = \
>15:
>16: $(TARGET):$(OBJS)
>17: $(CC) $(OBJS) -o -L/opt/local/include $@ -lreadline -lfl -lm
まず、-Lの指定は間違っています。
・-oオプションはできあがる実行形式の名前を指定するオプションですし、
makeでは、$@がターゲットの名前を指します。よって「-o $@」で組なので
その間に-Lを入れてはいけません。
・/opt/local/includeは、その名のとおり#includeするファイルを置くところだと
思うので、ライブラリは別のところにあるはずです。
MacOSのディレクトリ構造は知りませんが、おそらく/opt/local/libあたりに、
libreadline.aとかlibreadline.soなんとかというファイルがありませんか?
だとすれば、
>17: $(CC) $(OBJS) -o $@ -L/opt/local/lib -lreadline -lfl -lm
でいいと思います。
ただ、エラーメッセージが今でも
>cc -c -g lex.yy.c
>calc.l:6:31: readline/readline.h: No such file or directory
こうだというのなら、-Iも失敗しているようです。
…そう思ってMakefileを見直して気付きました。
CFLAGSはlex.yy.cの規則のところでは使っていませんでした。すみませんこちらのミスです (_o_)
14行目の
INCLUDES = \
を、
INCLUDES = -I/opt/local/include
としてみてください。