古いyacc/lexのプログラムをbison/flexを使ってmakeすると undefined reference to `yywrap' というリンクエラー


Solaris上で動いているyacc/lexのプログラムをLinuxに持ってきてmakeしたらこんなエラーが出た。
Linuxにはyaccの代わりにbison, lexの代わりにflexがインストールされている。

cc -o Prog -g Prog.o <中略> y.tab.o -ly -ll
y.tab.o(.text+0x4145): In function `yylex':
./obj/lex.yy.c:1573: undefined reference to `yywrap'
y.tab.o(.text+0x4c64): In function `input':
./obj/lex.yy.c:1908: undefined reference to `yywrap'
collect2: ld returned 1 exit status
make: *** [Prog] エラー 1

yywrap()の定義はlexのライブラリに入っていて、cc に -ll オプションを渡せばリンクできるはず。
が、調べてみるとflexが提供しているライブラリファイルは libl.a ではなく libfl.a という名前だった。
なのでオプションを -ll から -lfl に変更するか、libl.aという名前の、libfl.aへのシンボリックリンクを作るかしなくてはならない。
とりあえず-lflに変えたらビルドできた。