1

Bison(またはyacc)を使用して、エラーを解決するにはどうすればよいですか?

 multiple definition of `yyerror'

%option noyywrap nodefault yylineno一番上に試作品を書いてみました。運がない。

-編集-

気にしない。使用する例をコピーして貼り付けたとき、すでにyyerror関数があることに気づいていませんでした。

4

2 に答える 2

1

ld(1)次のオプションが必要です。

    -y symbol
   --trace-symbol=symbol
       Print the name of each linked file in which symbol  appears.   This
       option  may  be  given  any number of times.  On many systems it is
       necessary to prepend an underscore.

cc(1)経由でフロントエンドから これをフィードできます-Wl,option

   -Wl,option
       Pass option as an option to the linker.  If option contains commas,
       it is split into multiple options at the commas.

そう、cc -Wl,--trace-symbol=yyerror ...

于 2009-10-11T08:18:39.357 に答える
0

うーん、わかりませんが、「yyerror」はユーザー提供の関数です(Bison用)。あなたがいじるなら

%name_prefix

オプション、例えば

%name_prefix my_cool_parser_

yyerrorの代わりに「my_cool_parser_error」を使用するようにすることができます。これを実行しようとすると、エラーがどこにあるかを解決するのに役立ちますか?

于 2009-10-11T06:50:46.053 に答える