що таке ранліб?


10

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

Відповіді:


6

ranlibдодає або оновлює об’єктні файли в статичну бібліотеку . Підключення можуть використовувати статичні бібліотеки при посиланні , щоб надати символи , необхідні коду для роботи (на відміну від завантажувача, який шукає їх у динамічних бібліотеках при запуску виконуваного файлу).


Привіт Ігнасіо, дякую за відповідь. Чи означає це, що якщо я виконую ranlib на бібліотеці, він буде доступний для використання кожного разу, коли посилання намагається "посилатися" на нього? Як його видаляють?
Ян

ranlibвикористовується для створення та зміни бібліотек. Линк повинен використовувати їх, як правило, передаючи місце розташування бібліотеки та / або ім'я в командному рядку. Докладніше див. -LТа -lаргументи до gcc.
Ігнасіо Васкес-Абрамс

5
Але це arтакож не робить? Яка різниця?
greatwolf

16

Цей опис виглядає досить чітко: http://sourceware.org/binutils/docs/binutils/ranlib.html

Тож якщо ви архівуєте колекцію об’єктних файлів, скажіть:

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

Потім біг

$ ranlib fruits.a

створює індекс вмісту фруктів.a і зберігає індекс у фруктах.a. Це корисно для зв’язку та у випадку, якщо об'єкти дзвонять один одному.


"ranlib генерує індекс до вмісту архіву і зберігає його в архіві". Це звучить більше, як щось, що потрібно поєднувати, tarі я б сказав, не дуже чітко.
Код Блінг

8

ranlib формує індекс до вмісту архіву і зберігає його в архіві. Індекс перераховує кожен символ, визначений членом архіву, який є об'єктом файлів, що переміщуються. Архів з таким індексом прискорює зв'язок з бібліотекою і дозволяє підпрограми в бібліотеці телефонувати один одному, не зважаючи на їх розміщення в архіві.

джерело: сторінка людини ranlib

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.