我在使用 autoconf/automake 时遇到以下问题:我有几个为 flex/yacc 编写的文件。我在configure.ac中添加了以下内容:
AC_PROG_YACC
AC_PROG_LEX
在 Makefile.am 我写了以下内容:
PARSER = parser.yy scanner.ll
AM_YFLAGS = -d
BUILT_SOURCES = parser.h
appname_SOURCES = analyze.cc (various other sources) \
$(PARSER)
当我尝试编译时,每个对象都被创建得很好,但是链接不起作用:
g++ (various libs) -o appname appname-analyze.o (various other objects)
appname-scanner.o
(yet more objects) appname-scanner.o (and still more objects)
所以 automake 包含对象两次,这完全搞砸了构建并导致很多multiple definition
错误。如果您能告诉我我做错了什么,或者向我展示一个成功处理 lex/yacc 文件的 automake 项目,我将不胜感激。