Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ под Linux
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
#pragma
Временно недоступен
955 / 226 / 14
Регистрация: 12.04.2009
Сообщений: 925
1

Вопрос по теории касаемо статических библиотек *.a

30.07.2011, 01:05. Просмотров 1145. Ответов 1
Метки нет (Все метки)

Читаю исходники weechat (кто не в курсе - irc клиент).
Там я заметил интересную особенность. Ну кроме того,организация программы немного необычная: функция main общая для всех gui-интерфейсов,а сами функции,вызываемые из main, уже дублируются в разных папках по итерфейсам (Qt,Gtk,ncurses и т.д.), так ещё и сам core-код вместе с main сначала компилируется в статическую библиотеку lib_weechat_core.a, и только потом линкуется с другими такими же *.a, и получается уже исполняемый файл weechat-curses.
Это немного сбивает с толку - мне казалось,что в библиотеки пихают код функций,но немного странно, что там оказался код функции main. Зачем вообще могло понадобиться (чисто теоретически) делать lib_weechat_core.a, почему не собирают цель сразу? И вообще, есть ли разница как линковать программу,из .o, .a, или .so файлов? Я так понимаю,что .a - это просто некое промежуточное состояние между .o файлами и исполняемым файлом, просто архив, который объединяет много .o файлов между собой в виде специального кода,с которым линкер дальше уже решает что делать (в часности линкует в weechat-curses)?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.07.2011, 01:05
Ответы с готовыми решениями:

Использование статических библиотек
У меня есть библиотека libcRand.a в которой определен класс cRand. Как мне...

Отличие статических библиотек и header файлов
Здравствуйте. Интересно какая, по большому счету, разница между использованием...

демон для отлова RTP(вопрос о выборе библиотек и всего сопутствующего)
Вопрос конечно наверно офтоп, но так как ОС - линь, напишу сюда Нужно...

Вопрос касаемо необходимости JavaScript!
Добрый день. У меня вопрос не по конкретной проблеме, а несколько глобальнее,...

Глупый вопрос касаемо Ethernet
Является ли Ethernet интерфейсом ну как USB там или RS-232 или это протокол,...

1
niXman
Эксперт С++
3202 / 1451 / 73
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
30.07.2011, 01:18 2
Цитата Сообщение от #pragma Посмотреть сообщение
Зачем вообще могло понадобиться (чисто теоретически) делать lib_weechat_core.a, почему не собирают цель сразу?
то, что в эту либу напихали код - нормально. странно то, что в нее еще и main() запихнули %)


Цитата Сообщение от #pragma Посмотреть сообщение
Я так понимаю,что .a - это просто некое промежуточное состояние между .o файлами и исполняемым файлом
.a файлы, это своего рода архив состоящий из .o файлов. именно для удобства, все в одном.
и да, линкер умеет отыскивать в архиве что ему нужно.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.07.2011, 01:18

Вопрос касаемо рекламы от гугла
Хочу поставить себе на сайт рекламу от гугла!! гугловская прога сама определяет...

Подключение статических библиотек в Creator
Всем доброго времени суток. Возникла необходимость подключения статических...

Подключение сторонних статических библиотек
Всем привет! У меня есть библиотека по базам, не суть, надо ее подключить в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru