ライブラリ名からライブラリのファイル名を見つけるにはどうすればよいですか?
つまり、「-lc」を使用すると、それが /lib/libc.so.6 (または同様のもの) であることがわかります。「-lc」が入力で「/lib」のコマンドを入力できるようにしたいのです/libc.so.6" が出力されます。このアイデアをさらに拡張するために、独自の検索パスを指定して、このライブラリ リゾルバーをさまざまなツールチェーンに使用できるようにしたいと考えました。
ありがとうチェンツ
ライブラリ名からライブラリのファイル名を見つけるにはどうすればよいですか?
つまり、「-lc」を使用すると、それが /lib/libc.so.6 (または同様のもの) であることがわかります。「-lc」が入力で「/lib」のコマンドを入力できるようにしたいのです/libc.so.6" が出力されます。このアイデアをさらに拡張するために、独自の検索パスを指定して、このライブラリ リゾルバーをさまざまなツールチェーンに使用できるようにしたいと考えました。
ありがとうチェンツ
特定の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 ) )
または同様のもの。
gcc -Wl,--トレース ファイル.c
ld の入力ファイルのリストを出力します