2017-10-28 9 views
1

arライブラリとオブジェクトファイルがある場合、未解決の外部シンボルをすべて見つける最良の方法は何ですか? 1つの可能性は、リンカを実行してエラーをキャプチャすることですが、特定の数のシンボルの後に停止することがあります。より良い方法がありますか? と一緒にあなたのmingw-w64インストールのbinディレクトリでmingwライブラリに見つからないシンボルを見つける

答えて

0

は、CおよびC++コンパイラ、リンカおよびツールを作るには、あなたはGNU binutilsを他の のプログラムを作るべきです。

これら(nmobjdumpreadelf)のいくつかは、オブジェクトファイルや共有または 静的ライブラリのシンボルテーブルを解析することができます。最も簡単に使用するのはおそらくnmです。 binディレクトリがPATHであることを と仮定すると、ライブラリを含むディレクトリでコマンドプロンプト を開くかが興味 ているオブジェクトファイルと実行します。

nm -u libfoo.a 

のか:

nm -u foo.obj 

へ定義されていないシンボルをlibfoo.aまたはfoo.objにリストします。

これらのファイルにデマングルドを表示するC++シンボルが含まれている場合は、 をnmオプションに追加します。

これらのツールはすべて静的ライブラリlibfoo.aは単にオブジェクトファイルの アーカイブであることを認識のでnm ... libfoo.aはあなたlibfoo.aかのようにちょうど 同じ結果が得られますが、その中のオブジェクト ファイルのリストと交換しました。

関連する問題