Ошибка линковки linker: /usr/bin/ld: невозможно найти -lXtst

Вопросы программирования на Free Pascal, использования компилятора и утилит.

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

Ответить
ssnakess
новенький
Сообщения: 47
Зарегистрирован: 24.09.2011 23:08:55

Ошибка линковки linker: /usr/bin/ld: невозможно найти -lXtst

Сообщение ssnakess »

Подключил к проекту пакет - lazmouseandkeyinput
и получаю вот такую вот ошибку

Код: Выделить всё

Warning: linker: /usr/bin/ld: невозможно найти -lXtst: Нет такого файла или каталога
project1.lpr(26,1) Error: Error while linking
Сам пакет компилируется без ошибок.
Если исключить пакет - то проект компилируется без ошибок.
т.е. ошибка возникает именно когда этот пакет lazmouseandkeyinput, подключается.
причем можно ничего из него не использовать, т.е. нигде в uses, даже в lpr закоментировать
и всеравно такая вот ошибки при линковке проекта.

Подскажите, пожалуйста, что это за ошибка, и как её исправить?

Добавлено спустя 21 минуту 54 секунды:
Ура!!
Наконец таки нашел решение. Блин, пол дня рыл гугл, а надо было в яндексе спрашивать :)
Вот ответ
https://forum.lazarus.freepascal.org/in ... ic=33067.0
Install the development package for libxtst (-dev or -devel)
оказывается надо дополнительно поставить библиотеку в линукс и именно dev или devel
Сквозняк
энтузиаст
Сообщения: 1159
Зарегистрирован: 29.06.2006 22:08:32

Сообщение Сквозняк »

Ну да, в федорообразных линуксах, у которых пакеты rpm, заголовки находятся в отдельных пакетах, которые не всегда устанавливаются в систему. Для сборки паскалевских программ они обычно не нужны, т.к. у паскаля они продублированы в модулях импорта, но в твоём пакете прописан нестандартный алгоритм сборки. Но если в линуксе установить из репозитория пакет с заголовками, то он подтягивает в систему и свою библиотеку, если та не установлена.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

Там дело не в заголовках, а в одной несчастной символьной ссылке. Линкер, когда ему передают "-lXtst', ищет 'libXtst.so', а реальная библиотека называется как-то с номером версии, например 'libXtst.so.1.0.0'. Dev-пакет при установке создает libXtst.so как ссылку на реальный файл, а все остальное его содержимое остается лежать мертвым грузом.
Ответить