Что такое ranlib?

Я использую систему MacOSX некоторое время, но только недавно начал втыкать в кишки. Я нашел гида, говорящего мне запустить «sudo ranlib /usr/local/lib/libjpeg.a'(installing libjpeg). Я прочитал руководство ranlib и попробовал посмотреть на него в Интернете. Я просто не понимаю. Какие ресурсы мне нужно найти, чтобы узнать больше, или кто-нибудь может дать краткое объяснение его использования? Спасибо заранее!

9 голосов | спросил Ying 25 MarpmSun, 25 Mar 2012 18:58:47 +04002012-03-25T18:58:47+04:0006 2012, 18:58:47

3 ответа


5

ranlib добавляет или обновляет объектных файлов в статической библиотеке . Линкеры могут использовать статические библиотеки, если ссылка , чтобы обеспечить символы , которые нужны коду для работы (в отличие от загрузчик ищет их в динамические библиотеки при запуске исполняемого файла).

ответил Ignacio Vazquez-Abrams 25 MarpmSun, 25 Mar 2012 19:34:53 +04002012-03-25T19:34:53+04:0007 2012, 19:34:53
11

Это описание выглядит довольно ясно: http://sourceware.org/binutils/docs/binutils /ranlib.html

Итак, если вы архивируете коллекцию объектных файлов, скажите:

$ ar r fruits.a apple.o orange.o pineapple.o

Затем запустите

$ ranlib fruits.a

создает индекс содержимого fruit.a и сохраняет индекс в fruit.a. Это полезно для связывания и в случае, если объекты называют друг друга.

ответил Guest McGuesterson 13 J0000006Europe/Moscow 2014, 19:19:04
7

ranlib генерирует индекс в содержимое архива и сохраняет его в архиве. Индекс перечисляет каждый символ, определенный членом архива, который является перемещаемым объектным файлом. Архив с таким индексом ускоряет связь с библиотекой и позволяет подпрограммам в библиотеке звонить друг другу, независимо от места размещения в архиве.

source: runlib man page

ответил Albert 5 Jpm1000000pmTue, 05 Jan 2016 22:06:43 +030016 2016, 22:06:43

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132