일부 공유 라이브러리를 비표준 디렉토리에 설치했습니다 /usr/lib64/mylib
. 그런 다음 실행합니다 sudo ldconfig /usr/lib64/mylib
. 를 실행하여 ldconfig -p
내 라이브러리가 실제로 캐시되었다고 주장할 수 있습니다. 그러나 한 라이브러리에 연결되고 그 라이브러리가 그 안에 설치된 다른 라이브러리에 연결되는 프로그램을 컴파일하려고 하면 /usr/lib64/mylib
다음 오류가 발생합니다.
/usr/bin/ld: warning: libmy.so.3, needed by ./build/libtools.so.3.1.0.0, not found (try using -rpath or -rpath-link)
정의되지 않은 참조도 많습니다.
/usr/lib64/mylib
/etc/ld.so.conf
환경 변수에 또는 를 추가하면 이런 일이 발생하지 않습니다 LD_LIBRARY_PATH
. 그렇다면 수술의 효과는 무엇입니까 sudo ldconfig /usr/lib64/mylib
?
ldconfig -p
편집: 두 번째로 실행했을 때 공유 개체를 참조하는 행이 삭제되어 어떤 이유로든 잠시 동안 그대로 남아 있는 것을 발견했습니다 .