電子書籍の厳選無料作品が豊富!

macのターミナルでYaccとLexのプログラムを実行しようと思っています。Yaccプログラム(ren.y)は bison -y ren.y の後 gcc y.tab.c -ly -o a.exe の後更に ./a.exe でしっかり実行できます。しかし、YaccとLexのプログラム(Yaccプログラムはren1.y、Lexプログラムはren2.l)において、bison -dv -y ren1.y の後、flex -l ren2.l までのコンパイルはできるのですが、gcc y.tab.c lex.yy.c -ly -lfl -lm -o a でコンパイルリンクしようとすると、
ld: library not found for -lfl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
と表示されエラーが生じてしまいます。
macにはXcodeもインストールしてあります。
どうしてy.tab.cとlex.yy.cのコンパイルリンクと実行プログラムaの作成に失敗するのでしょうか?

A 回答 (1件)

> どうしてy.tab.cとlex.yy.cのコンパイルリンクと実行プログラムaの作成に失敗するのでしょうか?


 →ld: library not found for -lfl
  原因:flexのライブラリなんて無いよ!
  原因2:いろいろと賞味期限切れ
  対策:ライブラリの指定を削除する。
    × gcc y.tab.c lex.yy.c -ly -lfl -lm -o a
    △ gcc y.tab.c lex.yy.c
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!