bison - 带有 bison 和 flex 源的 autotools

标签 bison autotools flex-lexer

我有一个 C 项目,其中包括一个 flex 和一个 bison 源文件; flex 文件#includes bison 生成的 tab.h 文件。

所以我已将 AC_PROG_LEX 和 AC_PROG_YACC 添加到我的configure.ac 文件中。但是在我运行 autotools 并尝试创建项目之后,在运行 bison 来生成由 flex #included 的 tab.h 文件之前,编译了 flex 生成的 .c 文件。 .c 文件。因此编译失败。

我是一个autotools(和stackoverflow!)新手 - 我需要让autotools意识到flex .o对bison .tab.h的依赖吗?如果是这样,该依赖项会去哪里 - 在包含项目 SOURCES 列表的 Makefile.am 中?

TIA 约翰

最佳答案

您需要告诉 automake 头文件是要构建的,而不是您已经提供的。将其放入 Makefile.am 中:

BUILT_SOURCES = tab.h

关于bison - 带有 bison 和 flex 源的 autotools,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14457272/

相关文章:

c - 我们如何定义用于识别给定系列中特定序列的规则?

compiler-errors - yacc错误没有类型声明,但是我已经在Tiger.grm中声明了这些?

c - 如果文件不存在,Flex Bison 从文件读取会出现段错误

bison - 如何说服 Bison 解析文件的一部分?

c++ - (F)莱克斯 : get text not matched by rules/get default output

64-bit - 64 位 OpenSuse 发行版上的 Lib 目录

configure - 配置状态 : error: cannot find input file: `po/Makefile.in.in'

c++ - 如何强制重新编译 Makefile 中的单个文件?

c - 用于生成 AWK 扫描器的 FLEX - 识别变量

c - Flex - 快速扫描仪生成器。为什么?