Здравствуйте. Помогите в решении проблемы.
Есть тестовый консольный проект, который выполняет прием и передачу данных в COM порт. Проект создан в Delphi 10.3 (26.0.32), успешно компилируется и работает под платформами Win32 / Win64. Для работы с COM портом используется компонента TBlockSerial (Synapse SynaSer serial library 40).
При попытке скомпилировать проект под Ubuntu 16.04 получаю ошибку
[DCC Fatal Error] synaser.pas(105): F2613 Unit 'Libc' not found.
Другие проекты без использования Synaser компилируются и работают под Ubuntu без замечаний.
В SDK Delphi
C:\Users\User1\Documents\Embarcadero\Studio\SDKs\ubuntu16.04.sdk\lib\x86_64-linux-gnu
и на ПК с Ubuntu в \lib\x86_64-linux-gnu
присутствуют файлы libc.so6 и libc-2.23.co
Установка Ubuntu выполнена с нуля.
После установки использовал только команды
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt install libqt4-dev
sudo apt install g++-8-multilib
Так же пробовал варианты настройки рекомендованные Embarcadero.
sudo add-apt-repository ppa:ubuntu-sdk-team/pp
sudo apt install ubuntu-sdk
sudo apt-get install zlib1g-dev
Тестировал на версиях Ubuntu 16.04, 18.04 и 19.04 - Ошибка аналогичная.
Сбойный кусок кода :
----
unit synaser;
interface
uses
{$IFNDEF MSWINDOWS}
{$IFNDEF NO_LIBC}
Libc,
KernelIoctl,
{$ELSE}
termio, baseunix, unix,
{$ENDIF}
{$IFNDEF FPC}
Types,
{$ENDIF}
{$ELSE}
Windows, registry,
{$IFDEF FPC}
winver,
{$ENDIF}
{$ENDIF}
synafpc,
Classes, SysUtils, synautil;
----
Подскажите как можно решить эту проблему или может посоветуете какую нибуть альтернативную компонету для работы с COM портом под Linux для Delphi 10.
Delphi 10.3. Synaser. Ошибка F2613 Unit 'Libc' not found.
Модератор: Модераторы
- Снег Север
- долгожитель
- Сообщения: 3067
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
- *Rik*
- постоялец
- Сообщения: 453
- Зарегистрирован: 19.04.2011 12:18:51
- Откуда: Урал
- Контактная информация:
ArcG писал(а):Здравствуйте. Помогите в решении проблемы.
C:\Users\User1\Documents\Embarcadero\Studio\SDKs\ubuntu16.04.sdk\lib\x86_64-linux-gnu
и на ПК с Ubuntu в \lib\x86_64-linux-gnu
присутствуют файлы libc.so6 и libc-2.23.co
У Вас написано libc.so6, это не ошибка? В исходниках Synapse в файле sslinux.inc указано имя libc.so.6, надо симлинк с правильным именем сделать.
*Rik* писал(а):У Вас написано libc.so6, это не ошибка? В исходниках Synapse в файле sslinux.inc указано имя libc.so.6.
Действительно ошибся, файл называется libc.so.6
Добавлено спустя 2 минуты 26 секунд:
*Rik* писал(а):Надо симлинк с правильным именем сделать.
Не подскажете, как это сделать, я в программировании под линукс новичок.
ArcG писал(а):Подскажите как можно решить эту проблему
Самое простое, конвертировать проект в Лазарус)
https://www.lazarus-ide.org
Более сложный путь. Закомментировать
Код: Выделить всё
{$IFNDEF NO_LIBC}
//Libc,
//KernelIoctl,
Posix.Unistd,
Posix.Fcntl,
{$ELSE}
и разбираться с импортом. Искать нужные функции и прочее в
абракадабра intall path/source/rtl
Это в Delphi 10.2
