Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.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 在windows上编译和运行flex程序_C_Compiler Construction_Cmd - Fatal编程技术网

C 在windows上编译和运行flex程序

C 在windows上编译和运行flex程序,c,compiler-construction,cmd,C,Compiler Construction,Cmd,我编写了一个简单的flex程序,并在linux中运行它,代码如下 flex filename.l cc lex.yy.c -lfl ./a.out 但现在我想在windows中运行它,我在下面执行命令,现在我尝试用下面的命令编译flex文件,但它说cc不被识别,然后我尝试用下面的命令编译它 gcc lex.yy.c -lfl 它说,找不到-lfl,然后我试试这个 gcc lex.yy.c 但是我得到了很多错误,例如,对yywrap的未定义引用。如何识别flex库?问题是它找不到库。在lin

我编写了一个简单的flex程序,并在linux中运行它,代码如下

flex filename.l
cc lex.yy.c -lfl
./a.out
但现在我想在windows中运行它,我在下面执行命令,现在我尝试用下面的命令编译flex文件,但它说cc不被识别,然后我尝试用下面的命令编译它

gcc lex.yy.c -lfl
它说,
找不到-lfl
,然后我试试这个

gcc lex.yy.c

但是我得到了很多错误,例如,
对yywrap的未定义引用
。如何识别flex库?

问题是它找不到库。在linux上,它将位于系统路径上的/usr/bin或usr/local/bin下。在windows上,图书馆没有这样的标准位置

使用-lfl选项时,它将在系统路径上搜索名为libfl.o(共享库)或libfl.a(静态库)的文件,并将二进制文件链接到此文件

因此,您需要做的是使用gcc的-L选项提供库的位置

因此,您的新编译命令将是

gcc lex.yy.c -L<path to library> -lfl
gcc lex.yy.c-L-lfl

问题是它找不到库。在linux上,它将位于系统路径上的/usr/bin或usr/local/bin下。在windows上,图书馆没有这样的标准位置

使用-lfl选项时,它将在系统路径上搜索名为libfl.o(共享库)或libfl.a(静态库)的文件,并将二进制文件链接到此文件

因此,您需要做的是使用gcc的-L选项提供库的位置

因此,您的新编译命令将是

gcc lex.yy.c -L<path to library> -lfl
gcc lex.yy.c-L-lfl

查找flex库所在的位置。它可能被称为libfl.so或libfl.a。然后将-L添加到编译lex.yy.c的行中。它基本上是在抱怨它找不到图书馆。@PaulRooney我在“C:\GnuWin32\lib”中找到libfl.a。然后尝试了以下命令
gcc-lex.yy.c-L“c:\GnuWin32\lib”
gcc-lex.yy.c-L“c:\GnuWin32\lib”
gcc-lex.yy.c-L“c:\GnuWin32\lib”
和。。。但是没有人works@PaulRooney我用了
gcc lex.yy.c-L“c:\GnuWin32\lib”-lfl
,现在一切都好了,谢谢:您的flex库在哪里。它可能被称为libfl.so或libfl.a。然后将-L添加到编译lex.yy.c的行中。它基本上是在抱怨它找不到图书馆。@PaulRooney我在“C:\GnuWin32\lib”中找到libfl.a。然后尝试了以下命令
gcc-lex.yy.c-L“c:\GnuWin32\lib”
gcc-lex.yy.c-L“c:\GnuWin32\lib”
gcc-lex.yy.c-L“c:\GnuWin32\lib”
和。。。但是没有人works@PaulRooney我用了
gcc-lex.yy.c-L“c:\GnuWin32\lib”-lfl
,现在没事了,谢谢你:D