Kar*_*aro 2 c compiler-construction cmd
我编写了简单的 Flex 程序并使用以下代码在 Linux 中运行它
flex filename.l
cc lex.yy.c -lfl
./a.out
Run Code Online (Sandbox Code Playgroud)
但现在我想在 Windows 中运行它我在以下链接中执行命令现在我尝试使用以下命令编译 Flex 文件,但它说 cc 无法识别然后我尝试使用以下命令编译它
gcc lex.yy.c -lfl
Run Code Online (Sandbox Code Playgroud)
它这么说cannot find -lfl,然后我试试这个
gcc lex.yy.c
Run Code Online (Sandbox Code Playgroud)
但例如我遇到了很多错误undefined reference to 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
Run Code Online (Sandbox Code Playgroud)