这是我的/etc/ld.so.conf
/usr/local/lib64
/usr/local/lib
include /etc/ld.so.conf.d/*.conf目录/etc/ld.so.conf.d/包含mysql-x86_64.conf,它只包含以下一行:/usr/lib64/mysql
/usr/lib64/mysql目录列于.conf文件包含以下文件:
total 45,961,216
drwxr-xr-x 2 root root 4,096 Apr 11 17:20 ./
drwxr-xr-x 121 root root 81,920 Mar 30 20:01 ../
-rw-r--r-- 1 root root 28,951,398 Dec 9 21:40 libmysqlclient.a
lrwxrwxrwx 1 root root 20 Dec 9 21:56 libmysqlclient.so -> libmysqlclient.so.21*
lrwxrwxrwx 1 root root 25 Dec 9 21:56 libmysqlclient.so.21 -> libmysqlclient.so.21.1.19*
-rwxr-xr-x 1 root root 16,869,104 Dec 9 21:40 libmysqlclient.so.21.1.19*
-rw-r--r-- 1 root root 44,910 Dec 9 21:36 libmysqlservices.a运行ldconfig -p | grep mysql将返回以下内容:
libmysqlclient.so.21 (libc6,x86-64) => /usr/lib64/mysql/libmysqlclient.so.21
libmysqlclient.so (libc6,x86-64) => /usr/lib64/mysql/libmysqlclient.so当我试图链接一个非常小的MySQL测试程序时,我会得到以下错误:
/usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/bin/ld: cannot find -lmysqlclient将-L/usr/lib64/mysql添加到链接器可以工作。
根据这个回答和其他在互联网上找到的文档,ldd正在考虑/etc/ld.so.conf文件的内容--为什么在我的例子中,内容被忽略了?我做错了什么?
发布于 2020-04-11 18:14:21
ld.so.conf是运行时动态链接器ld.so的配置文件。
ld故意忽略它。它有自己的缺省值,辅之以-L。通常,搜索路径也是由驱动它的编译器确定的-参见gcc -print-search-dirs中的GCC。
LD_LIBRARY_PATH也只影响ld.so,不ld。
https://unix.stackexchange.com/questions/579449
复制相似问题