近期在做一个语法文件的扫描,校验的程序, 当然不能不用YACC/LEX这组工具. 但是每次修改语法和词法定文件后都要先在命令行上重新生成对应的源文件, 然后在QtCreator中将这些源文件编译成可执行程序来调试. 这样来回切换工作觉得非常麻烦, 且效率低下。于是希望找到一个集成的办法可一次完成所有的编译连接工作, 几经周折查询, 终于达到目标, 以下将整个过程记录在此, 希望对其他人有些帮助。
因为是Windows下应用,YACC/LEX工具是用的GNU的Bison/Flex, 下载的是Windows下的二进制安装程序, 下载地址分别是Bison for Windows和Flex for Windows .
1. 在QT项目文件的帮助就是QMake的文档中看到, 在QMake的变量中, 有LEXSOURCES, YACCSOURCES这两个变量, 那就是说可以在qt的项目文件中直接加入lex和yacc的源文件, 而qt应会编译自动生成所需要的源文件. 在pro文件中加入以下两行:
LEXSOURCES = grammar.l
YACCSOURCES = grammar.y
2.点击B