C++ 自动生成Yacc输出文件名进退两难
问题: 我有一个项目,正在从Solaris/Lex/Yacc移植到Linux/Flex/Bison+Autotools。 我遇到了以下问题,我想知道是否有人知道如何避开它。给定这样的目标(仅包括必要的详细信息): Automake正在从lpp和ypp生成以下源文件:C++ 自动生成Yacc输出文件名进退两难,c++,makefile,yacc,bison,automake,C++,Makefile,Yacc,Bison,Automake,问题: 我有一个项目,正在从Solaris/Lex/Yacc移植到Linux/Flex/Bison+Autotools。 我遇到了以下问题,我想知道是否有人知道如何避开它。给定这样的目标(仅包括必要的详细信息): Automake正在从lpp和ypp生成以下源文件: scanner.lpp->scanner.cpp(根据Automake手册) parser.ypp->my_prog-parser.cpp和my_prog-parser.h(为什么?) 尝试的解决方案: 使用bison的-b和-
- scanner.lpp->scanner.cpp(根据Automake手册)
- parser.ypp->my_prog-parser.cpp和my_prog-parser.h(为什么?)
是否有一些选项或我缺少的内容?解决方案: 因此,我花了很多时间阅读automake源代码本身(对于好奇的人,请看handle\u single\u transform函数)。如果为给定源类型指定了每个目标选项,则automake会自动将项目名称前置到任何生成的文件中 因此,改变:
my_prog_YFLAGS=-d
到
导致automake正确生成规则,导致parser.ypp生成:
- parser.cpp
- 解析器.h
my_prog_YFLAGS=-d
AM_YFLAGS=-d