我编写简单的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库?
答案 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