Lex生成的原始檔 匯入到vc 中 產生的 編譯問題

2025-07-07 08:20:12 字數 1271 閱讀 9331

用lex在linux下,c編譯提示找不到lex.h?咋回事

1樓:冷漠若宇闖天涯

我查了一下, 感覺是不是你在vc++裡一些設定步驟還沒做? 在安裝了parser generator後,執行以下步驟,即可使vc++編譯和連線由parser generator產生的檔案。 1.目錄設定 在vc++中執行以下步驟,每個步驟只執行一次。

如何改善 flex amp;bison 在vc下的環境

2樓:波谷很忙

1. 將flex的輸入檔案命名為字尾 .cpp, 但是將這個。cpp檔案從工程編譯中排除,這樣既可以方便在flex輸入檔案中寫c/c++**。同時編譯也不會報錯。

2. 如果要讓flex生成的標頭檔案和原始檔具有自己的名字,也很簡單,在flex的輸入檔案中使用如下選項就可自己指定想要的檔名:

cpp] view plaincopy

自命名輸出檔案 */

option outfile="" header-file=""

通過以上設定則flex生成的原始檔為 ,標頭檔案名為。

同理,我們對bison也進行一些設定。

3. 將bison的輸入檔案命名為字尾 .cpp,但是將這個。cpp檔案從工程編譯中排除,這樣既可以方便在flex輸入檔案中寫c/c++**。同時編譯也不會報錯。

4. 如果要讓bison生成的標頭檔案和原始檔具有自己的名字,也很簡單,在bison的輸入檔案中使用如下選項就可自己指定想要的檔名:

cpp] view plaincopy

宣告使用c++框架。

skeleton ""

require ""

重新命名parser class name

defines ""

define parser_class_name "parser"

通過以上設定則bison生成的原始檔為 ,標頭檔案名為 。 注意原始檔名**。tab, 這個是去不掉的,不過沒有關係,因為不會有檔案去包含乙個cpp檔案吧。

再也不用為記不住型別定義而苦惱了。

可以看到工程中 flex和bison的輸入檔案 和 雖然加到工程中了,但是不參與編譯。這是因為我們通過以下操作:

右鍵原始檔 > 屬性 > 配置屬性 > 常規 > 從生成中排除 > 選擇「是」

就可以讓乙個檔案不參與編譯了。

順帶提一句,同樣的設定也可以在source insight中實施。如果你足夠高手,甚至可以通過自定義的腳步連 $$1, 這樣bison特有的標記都可以識別出來。

如何將文字檔案中資料匯入到sql表中

1 建立 load.ctl 檔案 load data characterset utf8 infile d importdata datafile data.txt into table table namefields terminated by trailing nullcols id,mobi...

sql為副檔名的檔案如何匯入到sqlserver中

1 登入成功的資料庫頁面2 開啟了資料庫頁面把滑鼠點選 資料庫 右鍵點選 附加 3 然後點選 新增 選擇資料庫的檔案路徑 再點選 確定 4 匯入檔案到了資料庫,點選 確定 出現出錯資訊點選 確定 5 出錯資訊點選 附加數 看看出錯的資訊,之後點選 確定 和退出資料庫 6 退出了資料庫之後要重新選擇用...

C怎樣把檔案內容分別匯入到不同的radiobutton中

你在儲存這些資料的時候至少要加個分隔符如 aaaaa,男,未婚,計算機 然後在讀取的時候可以通過split函式來分別獲得 aaaaa 男 給你個分隔符的簡單例子 string str aaaaa,男,未婚,計算機 string array str.split new char array 0 就是 ...