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


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.