1

g++ -Wl,-rpath,/usr/local/lib -o /path-to/executable {list of .o files} -L/usr/X11R6/lib -L/usr/local/lib -lQtGui -L/usr/local/lib -L/usr/openwin/lib -lSM -lICE -lXext -lX11 -lresolv -lsocket -lnsl -lQtCore -lm -lrt -ldl -lpthread

上記のコマンドを使用して、実行可能ファイルをコンパイルしています。実際には、メイクファイルが私のためにそれをやっています..しかし、関係なく。

上記のコマンドでエラーが発生します。

ld: fatal: option -dn and -P are incompatible
ld: fatal: Flags processing errors

コマンドまたはメイクファイルのどこに -dn または -P がリンカーに提供されているのかわかりません。リンカーはこの情報をどこで取得していますか?

4

1 に答える 1

0

リンク コマンドの各セグメントを一時的に削除しようとしたところ、" ,rpath,/usr/local/lib" を削除すると機能することがわかりました。Linuxの世界のどこかでリンカーオプションを設定していると思いました。

さらに調査したところ、競合の原因となったいくつかのリンカー オプションを含む LD_LIBRARY_PATH を設定していたことが判明しました。その LD_LIBRARY_PATH を変更すると、正常に機能しました。

于 2013-03-21T17:59:18.970 に答える