Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ mingw32/bin/ld.exe:找不到-lfl collect2.exe:错误:ld返回了1个退出状态_C++_Windows_Gcc_Makefile_Flex Lexer - Fatal编程技术网

C++ mingw32/bin/ld.exe:找不到-lfl collect2.exe:错误:ld返回了1个退出状态

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/../../../../

我正在尝试从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/../../../../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