2009-10-23 4 views
10

Как найти имя библиотеки через имя библиотеки?Как найти имя библиотеки через имя библиотеки?

В других словах, когда я использую «-lc», я знаю, что это /lib/libc.so.6 (или что-то подобное.) Я хочу, чтобы иметь возможность вводить некоторую команду, где «-lc» - это вход и "/lib/libc.so.6" - выход. Для того, чтобы расширить эту идею futher, я хотел бы указать свой собственный путь поиска, так что я могу использовать эту библиотеку распознаватель для различных ... компилированных инструментов Любой помощи будет удивительной,

Благодарности Chenz

ответ

8

Если вы хотите узнать, где данное 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)) 

или что-то подобное.

4

НКА-, - след file.c

напечатает список входных файлов для л.д.

Смежные вопросы