C++ mingw32/bin/ld.exe:找不到-lfl collect2.exe:错误:ld返回了1个退出状态
我正在尝试从windows上的执行FLEX程序,并且我已经安装了FLEX和MingW编译器 我已经为环境变量添加了以下路径 C:\MinGW\bin C:\MinGW\msys\1.0\bin 之后,我尝试执行make命令,得到以下输出C++ mingw32/bin/ld.exe:找不到-lfl collect2.exe:错误:ld返回了1个退出状态,c++,windows,gcc,makefile,flex-lexer,C++,Windows,Gcc,Makefile,Flex Lexer,我正在尝试从windows上的执行FLEX程序,并且我已经安装了FLEX和MingW编译器 我已经为环境变量添加了以下路径 C:\MinGW\bin C:\MinGW\msys\1.0\bin 之后,我尝试执行make命令,得到以下输出 g++ -g -Wall -ansi -pedantic -std=gnu++0x bison.o lex.o main.o -o mini_lang -lfl c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../../
g++ -g -Wall -ansi -pedantic -std=gnu++0x bison.o lex.o main.o -o mini_lang -lfl
c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../../mingw32/bin/ld.exe: cannot find -lfl
collect2.exe: error: ld returned 1 exit status
make: *** [mini_lang] Error 1
下面是Makefile
请,有人能帮我修复这个错误吗?我正在使用MingW+MSYS2,对我来说,Flex库位于c:\msys32\usr\lib\libfl.a 尝试在MinGW文件夹树中搜索libfl.a,并使用-L编译器/链接器标志,后跟库所在的文件夹路径,指示编译器/链接器在该位置查找libfl.a 例如:
g++-g-Wall-ansi-pedantic-std=gnu++0x bison.o lex.o main.o-o mini_lang-lfl-Lc:\msys32\usr\lib我的建议是找一个不同的教程 您安装的flex发行版不包含libfl,或者您没有将libfl的路径添加到正确的环境变量中。您可以尝试显式地将路径添加到minilang规则中,在-lfl:…之前使用-L选项-L/path/to/包含libfl-lfl的目录 但是,绝对不需要-lfl,因此更好的解决方案是将其从minilang操作中删除,然后添加
%option noyywrap
到您的flex输入文件。这将阻止它生成调用yywrap的扫描程序,因此您不需要libfl中的yywrap。如果您使用MinGW编译器,请打开InstallationManager并安装此软件包:
mingw32-pthreads-w32
mingw32-pthreads-w32