Lazarus на Малинке, проблема с установкой компонента

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

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

Lazarus на Малинке, проблема с установкой компонента

Сообщение Eprinter » 17.01.2023 18:31:00

Всем доброго дня!

Не программист, просто хобби такое. 20+ лет назад начал с Delphi5-7, потом стало не хватать, перешёл на RadStudioXE. Появилось желание функционально доработать одну программу, работающую через сом-порты с внешним оборудованием, попутно добавив возможность компилировать и под Windows, и под Linux (желательно вплоть до Малины).
Решил использовать Лазарус, нашёл компонент RS232Port, установил как описано тут в Винде, написал простенький тест, проверил, устраивает.
Повторил процедуру для другого компа с Альтлинуксом - программа компилируется и тоже работает.
Решил проверить на РПи3, установил Симпли Линукс, в репозитории был Лазарус, устанавливаю компонент - ошибка:
Код: Выделить всё
Error: /usr/bin/ppca64 can't be executed, error message: Failed to execute "/usr/bin/ppca64", error code: -9

В линуксах не силён, предположил, что не хватает прав, попытался запустить Лазарус под рутом - не помогло.
Посмотрел на файл /usr/bin/ppca64 оказалось это ссылка на файл /usr/lib64/fpc/ppca64 может в этом проблема?

В общем, не совсем понятно, куда копать, помогите разобраться.
Есть вариант не ставить компонент, а подключить к проекту, но никогда так не делал и не могу найти описание.
Eprinter
новенький
 
Сообщения: 12
Зарегистрирован: 17.01.2023 17:56:58
Откуда: Нашенский

Re: Lazarus на Малинке, проблема с установкой компонента

Сообщение Сквозняк » 17.01.2023 19:47:27

Бинарник запустить пытаешься 64 битный, а битность лазазаруса и всего остального компилируемого тоже 64 битная? Также бинарники в системе проверяются утилитой ldd, которая показывает какие у неё зависимости и есть ли они в системе.

Также в линуксах есть несколько стандартов мест расположения 32 и 64 битных либ и паскалевские программы не всегда при компиляции их находят. Самый простой способ им помочь, это добавить в систему симлинки типа /lib32 /lib64 и ещё на сами либы.
Сквозняк
энтузиаст
 
Сообщения: 1109
Зарегистрирован: 29.06.2006 22:08:32

Re: Lazarus на Малинке, проблема с установкой компонента

Сообщение Eprinter » 18.01.2023 04:03:34

Так не я пытаюсь, Лазарус сам себя пересобирает ))
Подробнее.
Установил на Малинку Симпли Линукс, запустил Центр приложений, нашёл там Лазарус, установил.
Скачал компонент RS232Port, поместил в папку /usr/lib64/lazarus/components - всё по инструкции.
Открыл в Лазарусе файл пакета rs232portpackage.lpk, нажал "компилировать" - ок.
Далее нужно выбрать "Использовать - Установить" пакет, появляется предупреждение о пересборке Лазаруса, процесс идёт минут 10 и вываливается с ошибкой.

То есть проблема кмк либо в компоненте (но он прекрасно работает и в винде и в другом линуксе), либо в самом Лазарусе, либо в системе.
Или я не прав?

Почитал про линки, понял, что Лазарус как раз и пытается открыть ссылку на реально существующий файл:
Посмотрел на файл /usr/bin/ppca64 оказалось это ссылка на файл /usr/lib64/fpc/ppca64
Если этот 64-разрядный битник присутствует в скаченном из Центра приложений Лазарусе, система тоже 64х (ставил slinux-10.0-rpi4-aarch64.img отсюда), то получается кто-то где-то что-то когда-то напутал... Пожалуй задам вопрос на форуме АльтЛинукса.

ПС попробовал утилиту ldd, комбинация ldd --help работает, а при попытке проверить файл ppca64 пишет отказ (подробнее смогу описать вечером, малинка дома а я на работе).
Eprinter
новенький
 
Сообщения: 12
Зарегистрирован: 17.01.2023 17:56:58
Откуда: Нашенский

Re: Lazarus на Малинке, проблема с установкой компонента

Сообщение Сквозняк » 18.01.2023 12:23:04

Eprinter писал(а):То есть проблема кмк либо в компоненте (но он прекрасно работает и в винде и в другом линуксе), либо в самом Лазарусе, либо в системе.


Так вот именно что в другом линуксе. В одном в /usr/lib могут храниться 32 битные библиотеки, а в другом 64 битные. Кроме того, там могут быть и подкаталоги, в которые в каком-то из случаев сборка линуксовой программы не заглядывает. Сам паскаль с лазарусом обучили при сборке по этим каталогам лазить, а вот сторонние добавки могут с этим и не справиться. Потому нужно выяснить, какую зависимость они не подтягивают и накормить ею.

Eprinter писал(а): Пожалуй задам вопрос на форуме АльтЛинукса.


А это дело, пусть Скулл репу почешет :) Они там любят разбивать пакеты на кучу мелких чтобы всё хорошо потом работало и не ставилось что не работает, да и макросы в пакетах свои фирменные используют, потому посторонним в их зависимостях сложно разобраться.
Сквозняк
энтузиаст
 
Сообщения: 1109
Зарегистрирован: 29.06.2006 22:08:32

Re: Lazarus на Малинке, проблема с установкой компонента

Сообщение Eprinter » 18.01.2023 18:36:28

Сквозняк писал(а):А это дело, пусть Скулл репу почешет :)

Вопрос задал, первый ответ появился, надеюсь попробуют у себя и как-то пофиксят.
Я же пока нашёл временный выход: здесь описано, как можно подключать не визуальные компоненты, попробовал - компилируется и даже работает вроде )) буду тестить дальше.
Или может быть есть более правильный способ подключения компонента непосредственно в проект, не подскажете? Пробовал из меню установки пакета после компиляции указать "добавить к проекту", никакой реакции не наблюдал.
Eprinter
новенький
 
Сообщения: 12
Зарегистрирован: 17.01.2023 17:56:58
Откуда: Нашенский

Re: Lazarus на Малинке, проблема с установкой компонента

Сообщение Сквозняк » 19.01.2023 19:41:32

Eprinter писал(а):Вопрос задал, первый ответ появился,


И правильный ответ. Там куча симлинков и с ними постоянно компилируется. Главное чтобы путь не был слишком длинным.

Eprinter писал(а):Или может быть есть более правильный способ подключения компонента непосредственно в проект, не подскажете?


Не, другого способа не знаю - только с пересборкой главного бинаря лазаруса, только хардкор! На случай неудачной сборки, его заныканная копия должна быть обязательно. Архиватор через локальную менюшку замечательно делает такие копии. Он для небольших объёмов данных даже git нормально заменяет.
Сквозняк
энтузиаст
 
Сообщения: 1109
Зарегистрирован: 29.06.2006 22:08:32

Re: Lazarus на Малинке, проблема с установкой компонента

Сообщение ssm78 » 20.01.2023 09:09:54

Скажите, а смысл так заморачиваться?
Ставить Симпли Линукс, что то вручную компилировать?
Raspbery Pi OS + утилита fpcupdeluxe и все работает из коробки.
ssm78
новенький
 
Сообщения: 13
Зарегистрирован: 02.11.2021 12:32:50

Re: Lazarus на Малинке, проблема с установкой компонента

Сообщение Eprinter » 20.01.2023 09:48:22

Смысл в том, что путей масса, а известны лишь единицы ))
Спасибо, попробую пройтись вашим. Мне без разницы, какую ось накатывать на малинку, лишь бы Лазарус скомпилировал программу и она заработала...

ПС Я правильно понимаю, что на Малинку не нужно будет ставить Лазарус, а компилировать программу хоть из Винды, хоть из любого Линукса, и она будет работать?
Eprinter
новенький
 
Сообщения: 12
Зарегистрирован: 17.01.2023 17:56:58
Откуда: Нашенский

Re: Lazarus на Малинке, проблема с установкой компонента

Сообщение Seenkao » 20.01.2023 12:19:54

Eprinter, нет. Lazarus сам по себе ни чего не делает. Нужно ставить кросскомпилятор FPC, для нужной системы, под которую необходимо скомпилировать проект.

Добавлено спустя 3 минуты 13 секунд:
И да, правильно сказали, установи Lazrus на PI через FPCUPDeluxe. Тогда не будет проблем с установкой на нём необходимых компонентов.
Seenkao
энтузиаст
 
Сообщения: 502
Зарегистрирован: 01.04.2020 03:37:12

Re: Lazarus на Малинке, проблема с установкой компонента

Сообщение Eprinter » 20.01.2023 14:05:41

Seenkao, возможно я недостаточно подробно сформулировал вопрос.
Да, конечно же имел в виду установить на одну машину несколько копий ФПС+Лазарус и настроить каждую на компиляцию проектов под определённую платформу. То есть на саму Малинку устанавливать не нужно, как я понял. И это был бы идеальный вариант. Осталось разобраться, так ли это на самом деле, и собственно всё поставить/настроить ))

Сижу, ковыряюсь в окне fpcupdeluxe-x86_64-win64.exe и пытаюсь понять, куда вставлять нужный мне компонент RS232Port, и вообще что выбирать/отмечать... Опыта в программировании мало, пример бы какой или мануал подробный...

ПС В общем, не выходит каменный цветок. Верю, что FPCUPDeluxe это удобнее и надёжнее, но всё же заточен для программистов, которые понимают что к чему. Меня же обругал и всячески обзывал )) Error: Identifier not found "LF_FULLFACESIZE" - это явно не комплимент. Отложу пока, продолжу по старинке, понятными путями.

Добавлено спустя 1 час 36 минут 24 секунды:
В общем, пока устраивает такой вариант.
Проект пишется на Лазарусе под виндой, компонент RS232Port установлен.
На Малинке стоит АльтЛинукс, из его Диспетчера установлен Лазарус, компонент не установлен, но в меню "Проект -> Параметры проекта -> Пути", заполняем параметр "Другие модули (-Fu)" и указываем путь к папке с пакетом.
Открывается проект, игнорируются ошибки "не найден компонент", нажимается F9 и вуаля - программа работает точно так же, как в винде.
Изображение Изображение Изображение
Да, пока освоил только получение списка портов, что будет, когда дойду до обмена данными - поглядим ))
Eprinter
новенький
 
Сообщения: 12
Зарегистрирован: 17.01.2023 17:56:58
Откуда: Нашенский

Re: Lazarus на Малинке, проблема с установкой компонента

Сообщение Eprinter » 21.01.2023 18:06:38

Дошёл до приёма/передачи, всё пучком ))
Изображение
Так что не нужно ничего инсталлить, путь прописал и готово, можно компилировать.

RS232Port от ModRW шикарный компонент, я считаю! Мне бы такой 6 лет назад на дельфи найти, насколько проще и надёжнее было бы первую версию пилить...
Eprinter
новенький
 
Сообщения: 12
Зарегистрирован: 17.01.2023 17:56:58
Откуда: Нашенский

Re: Lazarus на Малинке, проблема с установкой компонента

Сообщение ikasjan » 23.01.2023 19:18:42

Eprinter писал(а):RS232Port от ModRW шикарный компонент, я считаю! Мне бы такой 6 лет назад на дельфи найти, насколько проще и надёжнее было бы первую версию пилить...

Приветствую!
Я новичок как в линуксе так и в ком-портах. Но дали задание переделать обмен с delphi+win на линукс.
Поиск по сети выдал, что чаще всего пользуются библиотекой Synapse(SynaSer). Но и по RS232Port (ModRW) - хорошие отзывы.
Может кто-нибудь сравнивал эти 2 библиотеки? Что посоветуете? Что проще для начинающего?
ikasjan
незнакомец
 
Сообщения: 1
Зарегистрирован: 23.01.2023 19:00:30

Re: Lazarus на Малинке, проблема с установкой компонента

Сообщение Eprinter » 01.03.2023 05:02:36

ikasjan писал(а):Может кто-нибудь сравнивал эти 2 библиотеки?
Что проще для начинающего?

Не сравнивал, но как начинающему мне очень понравился RS232Port. Для асинхронного обмена текстовыми данными он идеален - прописал обработчики событий (в том числе на возможные ошибки) и готово. Вспоминая свой первый опыт организации обмена через создание потоков вручную, в этот раз была приятная прогулка на пару часов, тогда же было скорее похоже на многодневный штурм с массой переделок ))
А какого рода данные нужно передавать/получать, что за оборудование на том конце шнурка, насколько важна скорость реакции?

Судя по описанию, Synapse больше, чем обмен по ком-порту, следовательно сложнее в освоении, но вероятно более функционален.
Eprinter
новенький
 
Сообщения: 12
Зарегистрирован: 17.01.2023 17:56:58
Откуда: Нашенский

Re: Lazarus на Малинке, проблема с установкой компонента

Сообщение andrej.tro » 01.11.2023 13:24:17

Здравствуйте.
Помогите с чтением из Com-порта.
Запись в порт я делаю: Rs232Port1.WriteData(chr(36)+chr(82)+chr(69)+chr(32)+chr(48)+chr(13));
Подскажите как сделать обработчики событий для чтения.
andrej.tro
незнакомец
 
Сообщения: 1
Зарегистрирован: 01.11.2023 13:11:24


Вернуться в Lazarus

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

Сейчас этот форум просматривают: Google [Bot], Yandex [Bot] и гости: 31

Рейтинг@Mail.ru