[問題] lex & bison 的問題

看板C_and_CPP作者 (猩爺)時間15年前 (2010/05/04 14:42), 編輯推噓6(6012)
留言18則, 9人參與, 最新討論串1/1
最近在學 lex 和 bison 但是老師給了一個不能跑的範例... 所以自己在上網找了一個範例 http://www.csie.ntu.edu.tw/~compiler/yacc/ 因為他的 makefile 不知道為什麼我的編譯環境不能用 所以我就自己打了指令 flex calculator.l byacc -d calculator.y 也很成功的產生出 lex.yy.c 和 y.tab.c 以及 y.tab.h 但是在打 cc lex.yy.c -ll 時 他會說出現兩個錯誤 In function yylex': undefined reference to 'global_value' 不知道為什麼會這樣 想請大家幫忙... 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.115.79.51

05/04 20:19, , 1F
2010 年還教這個喔?我快 10 年沒用到了。
05/04 20:19, 1F

05/04 20:21, , 2F
你產生出兩個 .c 只編一個就想產生出執行檔也不對吧。
05/04 20:21, 2F

05/04 20:35, , 3F
flex & bison生parser還不錯用啊 XD
05/04 20:35, 3F

05/04 20:37, , 4F
可是有問題的時候太難debug了....Orz
05/04 20:37, 4F

05/04 20:41, , 5F
flex & bison 的確古老,十幾年前用過
05/04 20:41, 5F

05/04 20:51, , 6F
嗚嗚...我還在學這個 QQ
05/04 20:51, 6F

05/04 21:21, , 7F
應該大學部教compiler都會用到這些吧 XD
05/04 21:21, 7F

05/04 22:15, , 8F
其實是要看課本,非聖經本的話不一定會用到。
05/04 22:15, 8F

05/04 22:15, , 9F
像是有本灰色精裝本是教用純 C 去寫。
05/04 22:15, 9F

05/04 23:49, , 10F
原PO 118嗎XD?
05/04 23:49, 10F

05/05 00:52, , 11F
其實很多學校編譯器都是教這
05/05 00:52, 11F

05/05 02:26, , 12F
主要是.l裡面有 extern double global_value的宣告導致
05/05 02:26, 12F

05/05 02:27, , 13F
按照這樣的寫法, 編譯時一定要跟yacc產生的一起編譯, 這
05/05 02:27, 13F

05/05 02:28, , 14F
樣才會過. 不然你可以把.l裡面extern宣告暫時拿掉也行
05/05 02:28, 14F

05/05 02:30, , 15F
lex主要的功能在辨識token yacc則是利用token辨識syntax
05/05 02:30, 15F

05/05 02:31, , 16F
所以兩者其實是可以各自為執行檔的.
05/05 02:31, 16F

05/05 02:34, , 17F
真懷念...
05/05 02:34, 17F

05/05 02:35, , 18F
hilorrk的老師以前在121對吧? 我是121畢業的 XD
05/05 02:35, 18F
文章代碼(AID): #1Bty7GUB (C_and_CPP)