我已經學習使用的Flex(詞法分析儀)和我已經使用下面的命令編譯:撓曲:未定義參考`yywrap」僅編譯時/分別連接
gcc -lfl -o test lex.yy.c
一切都很好。但是,我想將它與其他文件鏈接,所以我編譯和
gcc -c lex.yy.c
其次
gcc -lfl -o test lex.yy.o
單獨鏈接,但GCC告訴我,有一個未定義的引用yywrap()
。那麼,這裏發生了什麼?
我使用Flex 2.5.35,GCC 4.7.2和ld 2.22
我已經學習使用的Flex(詞法分析儀)和我已經使用下面的命令編譯:撓曲:未定義參考`yywrap」僅編譯時/分別連接
gcc -lfl -o test lex.yy.c
一切都很好。但是,我想將它與其他文件鏈接,所以我編譯和
gcc -c lex.yy.c
其次
gcc -lfl -o test lex.yy.o
單獨鏈接,但GCC告訴我,有一個未定義的引用yywrap()
。那麼,這裏發生了什麼?
我使用Flex 2.5.35,GCC 4.7.2和ld 2.22
末,而不是開頭添加-lfl
。
另外,如果你不想使用圖書館,只是#define yywrap()
1在.L文件,或者提供一個yywrap()
方法,返回1
它的記錄。
使用gcc lex.yy.c -ll
。否則它會產生一個未定義的參考yywrap
。
我創建了一個文件addon.c
int yywrap (void)
{
return 1;
}
並把它添加到目標。
您是否嘗試在末尾添加「-lfl」而不是開始? – Raj
工作。謝謝! – Flukiluke
好吧,我會將其作爲答案發布。 – Raj