我正在使用Yacc和Lex开展一个项目。我正在使用Anjuta IDE来完成任务,我遇到了Autotools的问题。我无法构建我的源代码,因为我的文件需要Yacc生成的头文件。在编译过程的其余部分之前,如何确保Yacc完成其工作。
答案 0 :(得分:1)
您需要将lex和yacc文件添加为依赖项,因此make将生成它们:
foo_SOURCES : foo_main.c foo.y foo.l
或类似的东西。更多细节会有所帮助。
答案 1 :(得分:0)
如果您有一个由Yacc的-d
选项生成的头文件,您应该在BUILT_SOURCES
中列出它,以便在编译任何其他源文件之前构建它。
Makefile.am
看起来像
BUILT_SOURCES = parser.h
AM_YFLAGS = -d
bin_PROGRAMS = foo
foo_SOURCES = ... parser.y ...
(此示例从the Automake manual逐字复制。)