0

Lex と Yacc は動作しますが、y.tab.c ファイルをコンパイルしようとすると、次のエラーが発生します。コンパイラが必要なライブラリを見つけられないリンクの問題だと感じていますが、修正方法がわかりません。

私のnor.yファイルでは、これが一番上にあります:

%{
#include <stdio.h>
%}

私のnor.lファイルには、これが一番上にあります:

 %{
#include "y.tab.h"
#include <stdlib.h>
extern YYSTYPE yylval;
%}

次に、コンパイルしようとすると

gcc y.tab.h -ly -ll

エラーが発生します:

Undefined symbols for architecture x86_64:
  "_yyparse", referenced from:
  _main in liby.a(main.o)
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
4

1 に答える 1

2

ヘッダーファイルではなく、.cファイルをコンパイルする必要があります。

gcc y.tab.c lex.yy.c -ly -ll
于 2013-03-05T00:33:31.893 に答える