【发布时间】:2011-07-17 14:23:57
【问题描述】:
问题:
我有一个项目要从 Solaris/Lex/Yacc 移植到 Linux/Flex/Bison + Autotools。 我遇到了以下问题,我想知道是否有人知道如何解决它。给定这样的目标(仅包括必要的细节):
bin_PROGRAMS=my_prog
my_prog_YFLAGS=-d
my_prog_SOURCES=\
main.cpp \
parser.ypp \
scanner.lpp
Automake 正在从 lpp 和 ypp 生成以下源文件:
- scanner.lpp ->scanner.cpp(根据 Automake 手册)
- parser.ypp -> my_prog-parser.cpp 和 my_prog-parser.h(为什么?)
尝试的解决方案:
使用 bison 的 -b 和 -o 选项更改输出文件名。这样做的问题是 automake 似乎假定默认输出名称 (parser.tab.c) 和 move 带有脚本的文件。如果我用 bison 更改输出文件名,当 automake 尝试重命名不存在的文件时,构建会失败。
有什么选择或我缺少的东西吗?
【问题讨论】:
-
不要与系统抗争——你最终会输。
-
请注意:您可以接受自己的答案,所以这个问题看起来已经完成了。
标签: c++ makefile yacc bison automake