我遇到了共享库和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
内部的每次更新后(例如,在每次添加或更新某些共享库后)。