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

4

0 に答える 0