我在https://github.com/Habbie/autoyacc-problem上发布了一个存储库来演示我的问题。
在 automake 1.11 及以下版本中,AC_PROG_YACC在 configure.ac 和AM_YFLAGS=-dMakefile.am 中使用,parser.yy 将变成 parser.cc 和 parser.h。使用 automake 1.12,我得到 parser.cc 和 parser.hh。因为 mybin.cc 有include "parser.h",这意味着 1.12 破坏了我的构建。
我感觉这是一个向后不兼容的更改,但我觉得应该有一种理智的方法来处理这个问题。
展示:
git clone https://github.com/Habbie/autoyacc-problem.git
cd autoyacc-problem/
autoreconf -i
./configure
make
Run Code Online (Sandbox Code Playgroud)
automake 1.11 的结果:mybin 被构建。automake 1.12 的结果:
mybin.cc:1:20: error: parser.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)
帮助!
注意:本示例中没有实际的 C++ 代码,但对于我的实际问题,我确实需要 g++。