在我開始將它用於真實項目之前,我正在測試並玩一下flex,但我面臨的是一些問題。「<FlexLexer.h> not found」,只發生在C++模式下
我正在使用名爲Termux的Linux模擬器在Android上工作。我已經安裝了flex和clang分別執行$ apt install flex
和$ apt install clang
。
我注意到如果我爲C編寫flex代碼,用$ flex filename
處理它,然後用$ gcc -lfl lex.yy.c
進行編譯,那麼所有代碼都可以編譯並且二進制文件完美地工作。
但如果我寫的對C Flex代碼++(即使用C++纔有的功能),並處理與$ flex -+ filename
與$ g++ -lfl lex.yy.cc
編譯,編譯時錯誤彈出說文件FlexLexer.h
,包括作爲
#include <FlexLexer.h>
未找到
。
爲什麼只有在使用C++時纔會發生這種情況?由於我實際上需要C++,我該如何解決這個問題,我正在使用模擬器在Android上工作?
FlexLexer.h在哪裏?哪個目錄? – Techidiot
@Techidiot我真的不知道。正如我所說的,我用'$ apt install flex'安裝了它,所以它可能位於我無法像'/ data'那樣正常訪問的目錄中。 – user6245072
您應該總是在引用庫的文件''gcc lex.yy.c -lfl'或'g ++ lex.yy.cc -lfl'之後放置'-l'選項*。我建議你總是使用'-Wall',並用'-o executable-name'指定一個顯式的輸出文件,而不是讓可執行文件放入'a.out'中。 – rici