我已阅读http://msdn.microsoft.com/en-us/library/aa730877%28vs.80%29.aspx但此文档适用于VS 2005.我坚持使用文档中的“在Visual C ++中导入.rules文件”部分。看起来VS 2010不支持.rules文件,相反,它似乎使用.targets文件来制作自定义构建规则。
有谁知道如何使用flex& VS 2010中的野牛?感谢。
答案 0 :(得分:3)
好消息是,目标文件在转换为2010之后仍然有效。
虽然示例因依赖项而无法运行,但您现在可以创建自己的项目并构建自己的词法分析器和解析器。您将遇到的唯一问题是使用unistd.h。添加这个,它不会:
#define YY_NO_UNISTD_H
我认为你可以获得在2010年在flex& amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp;野牛书。
答案 1 :(得分:1)
这个问题很老,但像我这样的Flex& Bison新手:你可以使用" Win flex-bison"工具可从here获得,它还包含如何在MSVS2010 +中配置VS C ++项目的教程
注意:如果链接不起作用,请使用google并搜索" Win flex-bison" ; - )
答案 2 :(得分:1)
Jarda指定的自定义构建规则是最简单的。以下是自定义构建规则的替代方法。
不要使用预编译的标头,除非您知道如何使用它们以便将其用于此目的。我有一个问题,抱怨宏重新定义和过早的文件结束,直到我关闭使用预编译头。
生成" Win32控制台应用程序"并使其成为一个空项目(没有生成的源代码)。例如,我正在使用" SimpleFlex"我的项目名称。
可选:您可以自定义VS文件夹的过滤器,以便Flex输入文件显示在“源文件”文件夹中。在“源文件”文件夹的属性中,将扩展名(" l"或" lex")添加到扩展名列表中。
然后使用" l"创建一个文件。 (或" lex")项目的扩展;例如," SimpleFlex.l"。在文件中,使用下面的一个示例。然后在项目设置中,创建自定义构建步骤。如果您不熟悉自定义构建,请查找"自定义构建步骤"项目设置中的选项卡。使用以下内容进行自定义构建步骤:
描述:生成词法分析器
命令:C:\ Software \ FLEX252 \ flex.exe -o $(ProjDir)\ $(InputName).cpp $(InputPath)
输出:$(ProjDir)\ $(输入名称).cpp
其中:
说明实际上是您想要使用的任何内容
命令包含Flex路径,输出文件和输入文件。您需要将Flex的路径更改为适合您系统的任何内容。
输出指定输出文件的文件名。
在为创建自定义构建步骤的Flex输入文件提供代码后,编译该文件。您可以使用Ctrl-F7进行编译。实际上,在这一点上,你可以建立项目;除了生成扫描程序(cpp文件)之外,构建没有任何内容可做。自定义构建应该执行Flex,但是您知道它的唯一方法是因为构建输出中显示了描述。应该已生成cpp文件,然后可以添加到项目中。如果你得到我上面描述的错误(宏重新定义和过早的文件结束),那么关闭项目的预编译头。
Bison的程序非常相似。