質問

多数の共有オブジェクトに動的にリンクされる実行可能ファイルがあります。どのシンボル(実行可能ファイルにインポートされた)が属しているかをどのように判断できますか?

複数の可能性がある場合、ldを整理して、それがどこから取られているかを見ることができますか?

役に立ちましたか?

他のヒント

チャーリーが言及したものと同様に、" ldd &quot ;あなたが探しているもののいくつかを行うかもしれません。

実行可能ファイルを再リンクできる場合、参照と定義がどこから来たかを見つける最も簡単な方法は、 ld -y フラグを使用することです。例:

$ cat t.c
int main() { printf("Hello\n"); return 0; } 

$ gcc t.c -Wl,-yprintf 
/lib/libc.so.6: definition of printf

実行可能ファイルを再リンクできない場合は、実行可能ファイルで ldd を実行し、次にリストされているすべてのライブラリで 'nm -D' を実行し、興味のあるシンボルのgrep

$LD_DEBUG=bindings my_program

これにより、すべてのシンボルバインディングがコンソールに出力されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top