/ usr / local / lib에서 공유 라이브러리 사용 제 경우 libodb-2.2.so에는이 디렉토리에 있는 파일

소스에서 일부 라이브러리를 빌드했으며 그 이후의 파일 make install/usr/local/lib

예를 들어, 제 경우 libodb-2.2.so에는이 디렉토리에 있는 파일 이 있습니다.

그러나와 연결된 실행 파일을 시작하면 libodb공유 라이브러리를로드하는 동안 오류가 발생했습니다.libodb-2.2.so: cannont open shared object file: No such file or directory.

실행 파일을 올바르게 빌드하지 않았다는 의미입니까? 또는 폴더에 흥미로운 라이브러리가있을 수 있음을 시스템에 표시해야 /usr/local/lib합니까?

Ubuntu 12.04, Linux 커널 3.2.0-38-generic을 사용하고 있습니다.



답변

현재 세션의 경우

내보내기 LD_LIBRARY_PATH = / lib : / usr / lib : / usr / local / lib

또는 영구적 인 변화를 만들기 위해 당신은 추가 할 수 있습니다 /usr/local/lib/etc/ld.so.conf(이 포함 또는 무언가) 실행 ldconfig루트로.

여전히 문제가있는 경우 running을 실행 ldd [executable name]하면 찾으려는 라이브러리와 찾을 수없는 라이브러리가 표시됩니다.


답변

ldconfig라이브러리를 빌드 한 후 이미 실행 한 경우 계속 읽으십시오. 그렇지 않은 경우 먼저 ldconfig를 읽으십시오 .

/usr/local/libldconfig가 사용하는 라이브러리 경로에 없을 수 있습니다. 당신은 이것을 할 수 있습니다 :

ldconfig /usr/local/lib

그리고 링커 캐시에 내용을 추가해야하지만 경로를 올바르게 추가하는 것이 좋습니다. /etc/ld.so.conf.d디렉토리 가 있는지 확인하십시오 . 그렇다면 파일을 추가하고 ( “usr-local.conf”등) 파일을 한 줄에 넣으십시오.

/usr/local/lib

이제 실행하십시오 ldconfig. ld.so.conf.d 디렉토리가없는 경우 /etc/ld.so.conf 파일 이 있어야하며 해당 행을 끝에 추가 할 수 있습니다.