1
我,包括我的C代碼的兩個diferent法解析器所以包括它定義的前綴,第二個:當我結合這一個在全球proyect它編譯沒有法前綴未定義的符號yyparse
%option prefix="prep"
錯誤,但在執行時,如果我嘗試調用prepparse(原yyparse)我得到這個錯誤:
undefined symbol: prepparse
我曾嘗試包括外部參考(不太清楚,如果這是正確的):
extern int prepparse(void);
和定義它在萊克斯頭:
#define yyparse prepparse
但我仍然得到同樣的錯誤。
任何想法我做錯了什麼?
而你編譯'prep.lex.c'而不是'yy.lex.c'(至少這是使用'flex -Pprep'時的事情的flex方式)? – Jens
我正在編譯lex.prep.c和lex.yy.c,因爲它們在不同的階段被調用,首先prepparse()用於預處理,然後用於yyparse進行權威性的解析。 – jordi
剛剛編譯,或兩者都鏈接到可執行文件? – vonbrand