проблема связывания библиотеки mysqlclient - PullRequest
2 голосов
/ 17 января 2010

Я связываю приложение с библиотекой mysqlclient в 64-битной CentOS 5.4 и получаю ошибку связывания (не могу найти -lmysqlclient) Библиотека находится в / usr / lib64 / mysql /:

una@localhost$ ll /usr/lib64/mysql/
total 9072
    ...
lrwxrwxrwx 1 root root      26 Jan  3 15:54 libmysqlclient_r.so -> libmysqlclient_r.so.15.0.0
lrwxrwxrwx 1 root root      26 Jan  3 15:54 libmysqlclient_r.so.15 -> libmysqlclient_r.so.15.0.0
-rwxr-xr-x 1 root root 1518456 Sep  4 01:28 libmysqlclient_r.so.15.0.0
lrwxrwxrwx 1 root root      24 Jan  3 15:54 libmysqlclient.so -> libmysqlclient.so.15.0.0
lrwxrwxrwx 1 root root      24 Jan  3 15:54 libmysqlclient.so.15 -> libmysqlclient.so.15.0.0
-rwxr-xr-x 1 root root 1514000 Sep  4 01:28 libmysqlclient.so.15.0.0
     ...

И каталог, похоже, правильно зарегистрирован для линкера Linux:

una@localhost$ cat /etc/ld.so.conf.d/mysql-x86_64.conf 
/usr/lib64/mysql

Единственный способ связать приложение на этом компьютере - указать полный путь к файлу библиотеки, что в моем случае неприемлемо. Что может вызвать проблему здесь?

Спасибо.

Ответы [ 2 ]

1 голос
/ 17 января 2010

/ usr / lib64 / mysql определенно не указан в пути поиска вашего gcc по умолчанию. Вы можете использовать скрипт autoconf для поиска пути установки libmysqlclient в этом виде дистрибутива и динамически использовать найденное местоположение с флагом -L.

1 голос
/ 17 января 2010
-L/usr/lib64/mysql

Материал ld.so.conf используется только во время выполнения, а не во время компиляции.

...