1

私は自分のマシンでライブラリ " A " をコンパイルしようとしています & 私は "C" と "D" のA のオプションの依存関係を標準パスとローカル/カスタム パスにインストールしています。カスタム パス ( -O3 ) のライブラリは標準パス ( -O0 ) のライブラリと比較して、より最適化されています。

LDFLAGS(-L) および LIBS (-l) を使用してローカル ライブラリのパスを指定して、ライブラリ「A」をコンパイルします。ライブラリが生成されます (libA.so または libA.a)!

ldd は、実行可能ファイルに対してリンクされたライブラリを確認できるツールです。

  • どのライブラリがライブラリに対してリンクされているかを知ることができる同等のツールはありますか (すなわち ldd libscalapack.a )?
  • ライブラリ A( libA.so/libA.a ) の作成中にオプションのライブラリ ライブラリが使用されたことを確認する方法はありますか?
  • コンパイル中に標準ライブラリとローカル ライブラリのどれが使用されたかを確実に確認する方法はありますか?

返信をお待ちしております。

4

1 に答える 1

0

ロード マップが必要であることをリンカに伝えます ( -Wl,-Map -Wl,mapfilegcc を使用している場合)。これにより、リンク段階で使用されたライブラリがわかります。

共有ライブラリの場合、プログラムの実行中にまったく同じライブラリが使用されるとは限りません。これは、ダイナミック ローダーの構成によって異なります。

于 2015-04-23T07:21:15.490 に答える