Linux FIBL ошибка линковки

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

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

Linux FIBL ошибка линковки

Сообщение tria » 11.11.2018 00:18:56

CentOS 6.9
Lazarus 1.6.4

Использую в проекте FIBL
В нем есть использование клиентской библиотеки Firebird:
IBASE_DLL = {$IFDEF WIN32}'fbclient.dll'{$ELSE}'libfbclient.so.2'{$ENDIF};
function isc_start_multiple(...): ISC_STATUS; {$IFDEF WIN32}stdcall{$ELSE}cdecl{$ENDIF}; external IBASE_DLL;

Но при компиляции проекта выдает:
Debug: /usr/bin/ld: cannot find -lfbclient
project1.lpr(20,1) Error: Error while linking

Текст lfbclient вообще где-либо в пакете отсутствует.
tria
постоялец
 
Сообщения: 365
Зарегистрирован: 03.04.2006 11:24:10

Re: Linux FIBL ошибка линковки

Сообщение Vadim » 11.11.2018 06:22:57

tria
Попробуйте вместо конкретного названия библиотеки - 'libfbclient.so.2', подставить обобщённое имя - 'fbclient.so' или просто 'fbclient'.
Vadim
долгожитель
 
Сообщения: 2818
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Linux FIBL ошибка линковки

Сообщение Indigo80 » 11.11.2018 08:32:03

для ubuntu. sudo apt-install libfbclient2 ну в centOS наверно так sudo yum install libfbclient2
Последний раз редактировалось Indigo80 11.11.2018 08:36:27, всего редактировалось 1 раз.
Indigo80
незнакомец
 
Сообщения: 7
Зарегистрирован: 31.07.2012 11:24:06

Re: Linux FIBL ошибка линковки

Сообщение olegy123 » 11.11.2018 08:35:44

для Centos
https://pkgs.org/download/firebird-libfbclient

Добавлено спустя 2 минуты 49 секунд:
yum install firebird-libfbclient
olegy123
энтузиаст
 
Сообщения: 1038
Зарегистрирован: 25.02.2016 12:10:20

Re: Linux FIBL ошибка линковки

Сообщение tria » 12.11.2018 22:51:08

Забыл дописать.
libfbclient.so.2 установлен, это ссылка на libfbclient.so.2.5.7.
Вопрос в другом - почему пытается найти lfbclient, когда должен искать libfbclient.so.2?

Извиняюсь, что редко пишу - личный проект после работы.
tria
постоялец
 
Сообщения: 365
Зарегистрирован: 03.04.2006 11:24:10

Re: Linux FIBL ошибка линковки

Сообщение olegy123 » 13.11.2018 15:19:09

tria писал(а):Вопрос в другом - почему пытается найти lfbclient, когда должен искать libfbclient.so.2?

в сях линковка библиотек проходит с командой -l.. для fbclient в итоге будет -lfbclient, куда теряется знак или почему в названии присутствует еще буква. никто не знает.
olegy123
энтузиаст
 
Сообщения: 1038
Зарегистрирован: 25.02.2016 12:10:20

Re: Linux FIBL ошибка линковки

Сообщение mig-31 » 16.11.2018 14:52:22

Вам просто нужно создать сим линк
64-bit
Код: Выделить всё
ln -s /usr/lib64/libfbclient.so.2 /usr/lib64/libfbclient.so

32-bit
Код: Выделить всё
ln -s /usr/lib/libfbclient.so.2 /usr/lib/libfbclient.so

или прямо на библиотеку.
Так я делал на CentOS7(только 64-bit)
mig-31
постоялец
 
Сообщения: 181
Зарегистрирован: 14.07.2011 13:46:48

Re: Linux FIBL ошибка линковки

Сообщение tria » 16.11.2018 22:36:34

Чем мне поможет линк libfbclient.so если пишет, что не может найти fbclient?
Какого беня ищет fbclient, если текста "fbclient" вообще нет в директории исходников fibl?
tria
постоялец
 
Сообщения: 365
Зарегистрирован: 03.04.2006 11:24:10

Re: Linux FIBL ошибка линковки

Сообщение olegy123 » 16.11.2018 23:32:03

ldconfig -p|grep fbclient
что выдает
olegy123
энтузиаст
 
Сообщения: 1038
Зарегистрирован: 25.02.2016 12:10:20


Вернуться в Lazarus

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

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

Рейтинг@Mail.ru