2

我在使用 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 项目,我将不胜感激。

4

0 回答 0