5

Ubuntu 12.04 64 ビットで SLitrani をビルドしようとしています。私はすでにソースから ROOT 5.34.03 をビルドしており、$ROOTDEV の LD_LIBRARY_PATH および PATH 変数を設定する方法を理解したので、問題はありませんが、SplineFit を作成しようとすると、

>>> g++: error: unrecognized option ‘-soname=libSplineFit.so’
make: *** [libSplineFit.so] Error 1

また、Makefile のすべて-m32を変更した-m64ので、何が起こっているのかわかりません。TwoPad をインストールできましたが、SplineFit から続行できません。私はかなり長い間このビルドに取り組んでおり、助けていただければ幸いです。

4

3 に答える 3

4

メモリからsonameは、コンパイラの操作ではなく、リンカの操作です。したがって、でそれを行っている場合はg++、オプションを次のようなものに変更する必要があります。

-Wl,-soname=libSplineFit.so

次のトランスクリプトは、これが必要であることを示しています。

pax> g++ --soname=x -Wall -o qq qq.cpp
cc1plus: error: unrecognized command line option "-fsoname=x"

pax> g++ -Wl,-soname=x -Wall -o qq qq.cpp

pax> 

gccのオンラインGNUドキュメントから:

-Wl、option:オプションとしてオプションをリンカに渡します。オプションにコンマが含まれている場合、コンマで複数のオプションに分割されます。

于 2012-11-25T02:34:23.573 に答える
2

これは古い質問であることは知っていますが、1週間苦労した後、調査結果を投稿する必要があると思いました.

このためのメイクファイルを正常に編集して、Ubuntu 12.04 x64 でコンパイルできるようにしました。

-soname オプションは完全に削除できますが、一見不要です。

前述のとおり、「m32」はすべて「m64」に変更されます。

「$ROOTSYS/libs」を「$ROOTLIBS」に置き換えることができます

また、TwoPad makefile を使用してライブラリの順序を (LIBS += (.....) の下で) 並べ替え、-lTwoPad がリストの最後にならないようにし、VisuSLitrani の場合は -lPhysMore をそのグループの最後にします。

私の知る限り、「set but not used」というエラーは無視できます。

それでも問題が解決しない場合は、折り返しご連絡ください。メイクファイルをお送りします。

于 2013-06-17T12:08:34.203 に答える