1

C++ のプロジェクトで gnu autotools を使用しています (autotools 構成は eclipse cdt によって自動的に生成されますが、これは問題ではないと思います)。私は LLVM ライブラリを使用していますが、現在、リンカー フラグの順序に関する問題に直面しています。

基本的に、プロジェクトをビルドするとき、eclipse は「make」を実行します。Make は多くのコマンドを実行しますが、最後に g++ コンパイラを次のように実行します。

g++ -DPACKAGE_NAME=\"test\" -DPACKAGE_TARNAME=\"test\" -DPACKAGE_VERSION=\"1.0\" -DPACKAGE_STRING=\"test\ 1.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"test\" -DVERSION=\"1.0\" -I.    `llvm-config --cppflags --ldflags --libs core` -g -O2 -MT test.o -MD -MP -MF .deps/test.Tpo -c -o test.o test.cpp
mv -f .deps/test.Tpo .deps/test.Po

そしてリンカー:

g++ `llvm-config --cppflags --ldflags --libs core` -g -O2   -o a.out test.o

問題は、引数「test.o」が行の先頭にない場合、リンカーが失敗することです。したがって、次のようにする必要があります。

g++ test.o `llvm-config --cppflags --ldflags --libs core` -g -O2   -o a.out

Makefile.am または gnu autotools の構成ファイルで変更するにはどうすればよいですか?

4

1 に答える 1

0

答えは見つかりませんでしたが、これまでのところ、LLVM には、すべてのものを正しい方法で処理するカスタム automake システムを含むプロジェクト テンプレートがバンドルされていることがわかりました。

テンプレートにアクセスする場合は、$LLVMSRC/projects/sample フォルダーにあります。

于 2012-11-14T20:39:49.620 に答える