본문 바로가기
Programming/C++

ldconfig

by 드로니뚜벅이 2022. 4. 17.

새로 작성한 공유 라이브러리를 사용하기 위해서는 라이브러리를 설치해야 합니다. 설치를 위해 디렉토리를 설정하고 ldconfig로 공유라이브러리 캐시를 다시 설정해야 프로그램에서 정상적으로 해당 공유 라이브러리를 로드할 수 있습니다.

 

즉, ldconfig는 프로그램을 실행할 때 공유 라이브러리 정보를 읽어 프로그램과 연결해 주는 링커를 설정하는 명령어로 리눅스에 *.so 파일을 인식하지 못할 때 재설정을 통해 읽도록 해 준다.

이 명령어는 존재하는 파일을 조사하고, /etc/ld.so.cache 캐시 파일을 설정하면서 필요한 라이브러리를 적재하고 심볼릭 링크를 만드는 역할을 합니다. /etc/ld.so.conf.d 디렉토리에 conf 파일을 추가/수정하거나 LD_LIBRARY_PATH를 변경할 경우에도 재설정이 필요합니다.

Option Description
-C <경로> /etc/ld.so.cache 파일 대신 지정한 파일을 이용합니다.
-f <경로> /etc/ld.so.conf 파일 대신 이용할 설정 파일을 지정한다.
-l 수동으로 각각의 라이브러리를 링크한다.
-n 명령행에서 지정한 디렉토리만을 대상으로 하며, /usr/lib, /lib, /etc/ld.so.conf 파일은 진행하지 않는다.
-N 캐시를 업데이트하지 않고 단지 링크만을 업데이트한다.
-p --print-cache 현재 캐시에 저장된 디렉토리와 라이브러리 목록을 출력합니다.
-r root 루트 디렉토리를 지정합니다.
--verbose 현재 버전 정보와 관련된 디렉토리와 링크들을 상세하게 출력합니다.
--version 버전 정보를 출력합니다.
-X 링크를 업데이트 하지 않고 단지 캐시만을 업데이트합니다.
--help 사용법을 출력합니다.

/etc/ld.so.conf.d/ 에 .conf 파일을 추가, 수정하거나 LD_LIBRARY_PATH 를 변경하게 된다면 ldconfig를 통해 라이브러리를 다시 설정해야 합니다.

 

생성한 공유라이브러리를 인식하지 못하면 공유 라이브러리가 있는 디렉토리를 "임의파일명.conf"를 만들어서 공유 라이브러리 위치를 적어 준 후 ldconfig를 실행해 주면 됩니다.

 

참고 사이트