1

コンテキスト: Linux ツールチェーン (インクルードg++、その他のビルド ツール、ライブラリ、ヘッダーなど) を使用して、静的にリンクされたライブラリでコードをビルドしています。ビルド マシンのデフォルトのものではなく、ツールチェーンのライブラリ/ヘッダーのみを使用していることを確認したいと考えています。straceコンパイル中に g++ が何をしているか (どのライブラリを使用しているか) を確認するために使用できますが、これは通常のシナリオで役立ちますが、私のビルド システムには g++ の周りに多くのラッパーがあり、すべての出力を隠しています。

質問: 静的にリンクされたバイナリから、バイナリの作成に使用されたライブラリとヘッダー ファイルに関する有用な情報を取得する方法はありますか? ツールを調べましたobjdumpが、それがあまり役立つかどうかはわかりません。

4

2 に答える 2

1

またはリンク時に-v渡すだけです。リンクされたすべてのライブラリが表示されます。おそらく試してみてくださいg++gccmake CC='gcc -v' CXX='g++ -v'

より一般的には、-vorはg++単なるドライバー プログラムであるgccため(開始、または、、...)gccg++cc1ldcollect2as

-Hフラグを GCC (g++または) に渡すと、gcc含まれているすべてのヘッダーを表示できます。したがって、期待するヘッダーのみが含まれていることを確認できます。

スタティック ライブラリをリンクすることは、その中の関連するオブジェクト ファイル メンバーをリンクすることを意味するだけなので、どのスタティック ライブラリがリンクされているかを確認することはできません。

コマンドを使用して、nmそのようなライブラリから名前を見つけることができます。

于 2013-06-01T04:38:11.900 に答える