Libraries

/usr/bin/ld: 找不到 -lfl

  • June 10, 2015

執行以下命令後:

g++ lex.yy.c -lfl

我收到以下錯誤:

/usr/bin/ld: cannot find -lfl

我該如何解決?

lex.yy.clex是C(和 C++)的詞法分析器預處理器的預設輸出文件名。連結器( )ld正在尋找一個名為libfl.so(如果是動態連結;如果是libfl.a靜態連結)的文件。這是由Flex生成的詞法分析器所需的執行時庫,Flex是一種 lex 實現。

如果您lex.yy.c使用 自己生成flex,請檢查是否正確安裝了 Flex。除了flex在路徑中包含執行檔之外,您還需要在庫搜尋路徑中包含libfl.soand libfl.alibfl_pic.a如果存在)(通常為/usr/libor /usr/local/lib,取決於 Flex 是否來自系統包)。如果您在非標準位置有 Flex,請​​使用以下命令指定庫搜尋路徑-L

~/software/flex/bin/flex mylexer.l
g++ lex.yy.c -L ~/software/flex/lib -lfl

引用自:https://unix.stackexchange.com/questions/37971