gcc:在/usr/local/lib中找不到链接库,但/etc/ld/so.conf.d/libc.conf列出了它



我遇到了共享库和gcc的问题。起初,我无法运行编译后的程序,因为我在加载共享库时遇到以下错误:gcc错误。

我做了一些搜索,发现这是因为找不到共享库。然而,我已经确定共享库位于/usr/local/lib中,AFAICT是共享库的常用目录,应该从一开始就可以使用。

我读到你可以设置LD_LIBRARY_PATH,这对我很有效。但我不希望每次运行我的程序时都设置这个。

进一步搜索建议编辑ld.so.conf。当我查看它时,它有以下内容:

include /etc/ld.so.conf.d/*.conf

在ld.so.conf.d目录中查找会显示一系列文件,包括libc.conf

/usr/local/lib

所以我的问题是,当LD.So.conf显示为使用包含/usr/local/lib的libc.conf时,为什么我需要手动设置LD_LIBRARY_PATH?

这里是否缺少必须首先配置的内容?在编译时是否有我缺少的选项?

我应该注意的是,要编译,我必须指定到库的路径,我不知道这是我问题的症状还是正常行为。

我还应该注意,当我在其他系统上部署软件时,这是我所关心的问题。我本以为我应该能够将.so放在适当的位置并安装我的程序,而不会干扰ld.so.conf.

我希望这是这个问题的合适论坛,我阅读了常见问题解答,我认为这是可以的

干杯。

您应该在每次更改通过/etc/ld.so.conf或在/etc/ld.so.conf.d/下配置的目录后运行ldconfig(作为根目录),尤其是在/usr/local/lib内部的每次更新后(例如,在每次添加或更新某些共享库后)。

最新更新