Libraries
/usr/bin/ld: 找不到 -lfl
執行以下命令後:
g++ lex.yy.c -lfl
我收到以下錯誤:
/usr/bin/ld: cannot find -lfl
我該如何解決?
lex.yy.c
lex
是C(和 C++)的詞法分析器預處理器的預設輸出文件名。連結器( )ld
正在尋找一個名為libfl.so
(如果是動態連結;如果是libfl.a
靜態連結)的文件。這是由Flex生成的詞法分析器所需的執行時庫,Flex是一種 lex 實現。如果您
lex.yy.c
使用 自己生成flex
,請檢查是否正確安裝了 Flex。除了flex
在路徑中包含執行檔之外,您還需要在庫搜尋路徑中包含libfl.so
andlibfl.a
(libfl_pic.a
如果存在)(通常為/usr/lib
or/usr/local/lib
,取決於 Flex 是否來自系統包)。如果您在非標準位置有 Flex,請使用以下命令指定庫搜尋路徑-L
:~/software/flex/bin/flex mylexer.l g++ lex.yy.c -L ~/software/flex/lib -lfl