2

我在 64 位 CentOS 5.4 上将应用程序与 mysqlclient 库链接,并出现链接错误(找不到 -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

我可以在这台机器上链接应用程序的唯一方法是指定库文件的完整路径,这在我的情况下是不可接受的。什么可能导致这里的问题?

谢谢。

4

2 回答 2

1

/usr/lib64/mysql 肯定不在 gcc 的默认搜索路径中。您可以使用 autoconf 脚本在这种发行版上搜索 libmysqlclient 的安装路径,并使用 -L 标志动态使用找到的位置。

于 2010-01-17T10:57:21.357 回答
1
-L/usr/lib64/mysql

ld.so.conf 东西只在运行时使用,而不是编译时使用。

于 2010-01-17T10:38:54.393 回答