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

Met*_*kin 14 linux gcc shared-libraries

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

我做了一些搜索,发现这是因为无法找到共享库.但是我已经确定共享库位于/ usr/local/lib中,其中AFAICT是共享库的常用目录,应该可以从get get开始工作.

我读到你可以设置LD_LIBRARY_PATH,这对我有用.但是,每次我想运行程序时,我都不希望这样设置.

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

include /etc/ld.so.conf.d/*.conf
Run Code Online (Sandbox Code Playgroud)

查看ld.so.conf.d目录显示了一系列文件,包括libc.conf.在这个文件里面是以下内容:

/usr/local/lib
Run Code Online (Sandbox Code Playgroud)

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

我在这里缺少必须首先配置的东西吗?在编译时是否有一个我缺少的选项?

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

我还应该注意到,当我在其他系统上部署我的软件时,这是一个值得关注的问题.我本以为我应该能够将.so放在适当的位置并安装我的程序而不会弄乱ld.so.conf.

我希望这是这个问题的正确论坛,我阅读了FAQ,我认为没关系.

干杯.

Bas*_*tch 18

您应该ldconfig在每次更改通过/etc/ld.so.conf或在之后配置的目录之后(以root身份)运行/etc/ld.so.conf.d/,特别是在每次更新内部之后/usr/local/lib(例如,在每次添加或更新某些共享库之后).