我正在运行Debian Squeeze,我使用apt-get install flex安装了flex / flex ++。
但是我注意到flex ++只是flex的sym链接。那么,真的存在一个“程序”flex ++来生成c ++扫描仪,或者只是一个我应该切换的flex标志?
此外,常见问题:互联网上的许多示例都无法在flex或flex ++下“编译”。 Flex给出以下错误:
test.lex:1: invalid character: %
...
处理输入时只需:
%name Test
这里有什么问题?
Flex / Flex ++版本为2.5.35
答案 0 :(得分:4)
实际上有一个Flex ++项目,但它与原始的Flex分开:
Flex确实支持生成用于C ++的扫描程序代码,但它被归类为实验性的(尽管它已存在很长时间了):
符号链接的解释是某些程序根据它们的调用方式修改它们的行为。出于兼容性原因,他们会检查argv[0]
并查看可执行文件名称。例如,当以flex++
运行时,它可以为C ++支持启用-+
标志。
(BusyBox使用这种技术让一个二进制文件表现为多个单独的程序,节省空间。)