运行时:
sudo /sbin/ldconfig
Run Code Online (Sandbox Code Playgroud)
出现以下错误:
/sbin/ldconfig: /usr/local/lib/ is not a symbolic link
Run Code Online (Sandbox Code Playgroud)
当我运行文件时:
file /usr/local/lib/
/usr/local/lib/: directory
Run Code Online (Sandbox Code Playgroud)
里面/usr/local/lib/有我使用的三个库.我会在这里称他们为lib1,lib2和lib3.
现在,当我ldd在我的二进制文件上执行时,它会产生:
lib1.so => not found
lib2.so => not found
lib3.so => /usr/local/lib/lib3.so (0x00216000)
Run Code Online (Sandbox Code Playgroud)
但是所有的文件夹都在同一个文件夹中/usr/local/lib/{lib1,lib2,lib3}.so.
每次运行时ldconfig,都会出现相同的错误:
/usr/local/lib/ is not a symbolic link
Run Code Online (Sandbox Code Playgroud)
我认为/usr/local/lib应该两次申报/etc/ld.conf.d/*.conf,但不是:
sudo egrep '\/usr\/local' /etc/ld.so.conf.d/*
projectA.conf.old:/usr/local/projectA/lib
local.conf:/usr/local/lib
Run Code Online (Sandbox Code Playgroud)
ld.so.conf只包括/etc/ld.so.conf.d/*.conf,所以这*.old不是处理,它指的是/usr/local/projectA/lib.
经过一段时间后,我删除了所有的lib1和lib2(在某些时候我在二进制文件夹上测试了它),发生了同样的错误.