2009-10-23 13 views
10

Jak znaleźć nazwę pliku biblioteki za pomocą nazwy biblioteki?Jak znaleźć nazwę pliku biblioteki za pomocą nazwy biblioteki?

W innych słowach, kiedy używam "-lc", wiem, że to /lib/libc.so.6 (lub coś podobnego.) Chcę móc wpisać polecenie, gdzie "-lc" jest wejściem a "/lib/libc.so.6" to wynik. Aby przedłużyć ten pomysł dodatkowych wojsk, chciałem określić własną ścieżkę przeszukiwania, więc mogę korzystać z tej biblioteki rozpoznawania nazw dla różnych toolchains ... Każda pomoc będzie niesamowite,

Dzięki chenz

Odpowiedz

8

Jeśli chcesz dowiedzieć się, gdzie dana GCC znajdzie libc.a lub libc.so, to zrobić:

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

Powodem -lc przekłada się libc.so.6 jest nieco skomplikowana: dla glibc, libc.so jest skrypt linkera, który zwykle zawiera:

/* 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)) 

lub coś podobnego.

4

gcc -Wl, - ślad file.c

będzie wydrukować listę plików wejściowych do ld

Powiązane problemy