Глюк компилятора/линковщика?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Глюк компилятора/линковщика?

Сообщение cirk-s-konyami » 12.01.2023 16:11:36

Продолжение темы:
http://freepascal.ru/forum/viewtopic.php?f=5&t=43532
Во вложении:
1. Проект статической библиотеки libtest_1.a в среде CodeBlocks.
2. Проект динамической библиотеки libtest_1.so в среде CodeBlocks.
3. Проект Lazarus, который вызывает функции из этих библиотек.
Проблема в том, что когда названия этих библиотек одинаковые, Лазарь автоматически создаёт зависимость от so библиотеки, даже если в проекте используются функции только для вызова из статической библиотеки. В проекте вообще может не быть вызовов функций из динамической библиотеки, но лазарь создаст зависимость от неё по собственной инициативе.
В конечном счёте, ldd показывает зависимость от so. При этом, so можно размещать где угодно, но ldd и исполняемый файл so не найдут.
Обход глюка решается методом изменения названий статической и динамической библиотек - они должны быть разные.
Вопрос это реально глюк или в этом есть какой то глубокий смысл?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
cirk-s-konyami
незнакомец
 
Сообщения: 8
Зарегистрирован: 23.05.2022 17:54:38

Re: Глюк компилятора/линковщика?

Сообщение Сквозняк » 17.01.2023 23:00:57

Это давняя линуксовая проблема - одинаковые имена у зависимостей. У себя именно переименованием статических либ её и решал. При сборке паскадевской иде с отладчиком именно этот глюк и вылезает. Иногда помогает перестановка местами зависимостей в сборочной команде, это когда сам из командной строки собираешь, возможно у тебя линковщик вначале шарится по системным динамическим либам - какую первую найдёт, ту и присобачивает. Причём, линковаться можно не только к самой либе, но и к либам, которые в неё запакованы внутрь. Их в линуксе ещё больше и там шанс нарваться на совпадение имён и компиляцию не с тем, с чем надо, ещё выше :mrgreen:

Кстати, у паскаля и лазаруса тоже есть модули с одинаковыми именами.
Сквозняк
энтузиаст
 
Сообщения: 1110
Зарегистрирован: 29.06.2006 22:08:32


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16

Рейтинг@Mail.ru