在Windows上编译并运行flex程序

时间:2014-10-19 08:12:34

标签: c compiler-construction cmd

我编写简单的flex程序并使用以下代码在linux中运行它

flex filename.l
cc lex.yy.c -lfl
./a.out

但是现在我想在windows中运行它我在下面link执行命令现在我正在尝试编译flex文件,但是它表示cc不被识别然后我尝试使用以下命令编译它

gcc lex.yy.c -lfl

它说cannot find -lfl,然后我试试这个

gcc lex.yy.c

但是我遇到了很多错误,例如undefined reference to yywrap。我该怎么做来识别flex库?

1 个答案:

答案 0 :(得分:4)

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

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

所以你需要做的是使用gcc的-L选项提供库的位置。

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

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