Проблема:
Есть 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
LD_LIBRARY_PATH
>LD_LIBRARY_PATHНеа... Попробовал. Все то-же самое. Еще к размышлению: если добавить при компиляции -shared , то при запуске вываливается с core
Ну коль демон самопальный, надо лезть туда.
LD_LIBRARY_PATH - это если сделано по умному.
Эту переменную можно отменить, не помню где и как...
man dlopen
man dlinfo
man ld
Давно ковырял...
Я тут выяснил пачку других методов:1. ldd ./мой_демон
Выводит пути где он ищет библиотеки.
2. Проверить LD_LIBRARY_PATH (ну это и ты мне посоветовал)
3. Не забыть сделать ldconfig
4. Проверить знает ли твой динамический линкер о mysql-е можно
strings /etc/ld.co.cache | grep mysql
(C)Banshee с форума на www.linux.org.ruЯ все это сюда кидаю, потому как работает это и в общем случае - вдруг кому пригодится