首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ld忽略ld.so.conf

ld忽略ld.so.conf
EN

Unix & Linux用户
提问于 2020-04-11 16:54:00
回答 1查看 1.3K关注 0票数 1

这是我的/etc/ld.so.conf

代码语言:javascript
运行
复制
/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文件包含以下文件:

代码语言:javascript
运行
复制
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将返回以下内容:

代码语言:javascript
运行
复制
    libmysqlclient.so.21 (libc6,x86-64) => /usr/lib64/mysql/libmysqlclient.so.21
    libmysqlclient.so (libc6,x86-64) => /usr/lib64/mysql/libmysqlclient.so

当我试图链接一个非常小的MySQL测试程序时,我会得到以下错误:

代码语言:javascript
运行
复制
/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文件的内容--为什么在我的例子中,内容被忽略了?我做错了什么?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2020-04-11 18:14:21

ld.so.conf是运行时动态链接器ld.so的配置文件。

ld故意忽略它。它有自己的缺省值,辅之以-L。通常,搜索路径也是由驱动它的编译器确定的-参见gcc -print-search-dirs中的GCC。

LD_LIBRARY_PATH也只影响ld.sold

另见用于静态链接器、动态链接器、加载程序和动态加载程序的可执行ELF文件分别是什么?

票数 4
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/579449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档