我在git源代码控制(Github page)下使用Qt4制作GUI程序。项目的一小部分需要扫描和解析。所以我想在项目中使用flex和bison。我可以想到3种方式 -
我显然想要第三种选择,但不知道该怎么做。
请建议最佳选择和方法。或者还有其他方法可以做到吗?
注意 - 我希望项目是跨平台的,也可以为Windows构建。
答案 0 :(得分:3)
通过关注@ Bort评论中的链接,我能够很好地将Flex和Bison与我的Qt项目集成。我在项目设置中添加了自定义构建步骤。以下是Qt Creator中的屏幕截图。
我问了一个相关的问题 - Undefined reference error even though the functions are present
答案 1 :(得分:1)
我在他的回答中找不到 Qt Creator 配置页面 @VinayakGarg 引用。
一种解决方案(来自 here)是直接编辑 .pro
文件。这对我有用。
### For building the gnu flex part
FLEXSOURCES += my_lex_sourcefile.l
flex.input = FLEXSOURCES
flex.output = ${QMAKE_FILE_BASE}.c
flex.commands = flex -o ${QMAKE_FILE_IN_BASE}.c ${QMAKE_FILE_IN}
flex.variable_out = SOURCES
flex.CONFIG += target_predeps
flex.clean = ${QMAKE_FILE_IN_BASE}.c
flex.name = flex
# finally add this to the qmake project so it will have the makefile generated
QMAKE_EXTRA_COMPILERS += flex
其中(显然)my_lex_sourcefile.l
是您的 flex-input 文件名。
应在 flex.commands
行中添加任何额外的命令行选项。
参考:https://jonmacey.blogspot.com/2012/03/using-flex-with-qt.html