11

ライブラリ名からライブラリのファイル名を見つけるにはどうすればよいですか?

つまり、「-lc」を使用すると、それが /lib/libc.so.6 (または同様のもの) であることがわかります。「-lc」が入力で「/lib」のコマンドを入力できるようにしたいのです/libc.so.6" が出力されます。このアイデアをさらに拡張するために、独自の検索パスを指定して、このライブラリ リゾルバーをさまざまなツールチェーンに使用できるようにしたいと考えました。

ありがとうチェンツ

4

2 に答える 2

12

特定のGCCがlibc.aまたはlibc.soを見つける場所を知りたい場合は、次のようにします。

gcc --print-file-name=libc.a
gcc --print-file-name=libc.so

-lcに変換される理由libc.so.6はやや複雑です。glibcの場合libc.so、リンカースクリプトであり、通常は次のものが含まれます。

/* GNU ld script
   Use the shared library, but some functions are only in
   the static library, so try that secondarily.  */
OUTPUT_FORMAT(elf32-i386)
GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a  AS_NEEDED ( /lib/ld-linux.so.2 ) )

または同様のもの。

于 2009-10-24T04:18:17.090 に答える
4

gcc -Wl,--トレース ファイル.c

ld の入力ファイルのリストを出力します

于 2009-10-23T17:20:48.897 に答える