URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 321
[ Назад ]

Исходное сообщение
"RE: долбанный демон"

Отправлено Andrews , 05-Дек-01 17:13 
Проблема:
Есть RedHat 7.0 c MySQL установленным из сырцов.

Есть самописанный демон, работающий с MySQL. в /etc/ld.co.conf пути до библиотек прописаны.

Компиляю либо # gcc -L/usr/local/mysql/lib/mysql -I/usr/local/mysql/include/mysql  server.c -o server  -lmysqlclient (мой вариант), либо # gcc -L/usr/local/mysql/lib -I/usr/local/mysql/include  server.c -o server  -l mysql -l nsl -l socket (книжный вариант)

В книжном запуске не находит библиотек еще при компиляции. В моем при старте демон выдает: /server: error while loading shared libraries: libmysqlclient.so.10: cannot open shared object file: No such file or directory

В чем проблемма?  Где он ее пытается найти, если не по путям из /etc/ld.co.conf


Содержание

Сообщения в этом обсуждении
"RE: долбанный демон"
Отправлено Арлекин , 05-Дек-01 18:05 
LD_LIBRARY_PATH

"RE: долбанный демон"
Отправлено Andrews , 05-Дек-01 21:01 
>LD_LIBRARY_PATH

Неа... Попробовал. Все то-же самое.  Еще к размышлению: если добавить при компиляции -shared , то при запуске вываливается с core


"RE: долбанный демон"
Отправлено Арлекин , 06-Дек-01 13:25 
Ну коль демон самопальный, надо лезть туда.
LD_LIBRARY_PATH - это если сделано по умному.
Эту переменную можно отменить, не помню где и как...
man dlopen
man dlinfo
man ld
Давно ковырял...

"RE: долбанный демон"
Отправлено Andrews , 07-Дек-01 12:06 
Я тут выяснил пачку других методов:

1. ldd ./мой_демон
   Выводит пути где он ищет библиотеки.
2. Проверить LD_LIBRARY_PATH (ну это и ты мне посоветовал)
3. Не забыть сделать ldconfig
4. Проверить знает ли твой динамический линкер о mysql-е можно
strings /etc/ld.co.cache | grep mysql

(C)Banshee с форума на www.linux.org.ru

Я все это сюда кидаю, потому как работает это и в общем случае - вдруг кому пригодится