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にはオブジェクトが2回含まれているため、ビルドが完全に台無しになり、多くのmultiple definition
エラーが発生します。私が間違っていることを教えていただければ幸いです。そうでなければ、lex/yaccファイルが正常に処理されるautomakeプロジェクトを見せてください。