새로 작성한 공유 라이브러리를 사용하기 위해서는 라이브러리를 설치해야 합니다. 설치를 위해 디렉토리를 설정하고 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를 실행해 주면 됩니다.
참고 사이트
'Programming > C++' 카테고리의 다른 글
glibc 버전을 확인하려면... (1) | 2023.10.26 |
---|---|
ARM 크로스 컴파일(Cross Compile) (0) | 2023.05.26 |
리눅스 C++ 공유라이브러리 만들기 (0) | 2022.09.06 |
C/C++(gcc/g++) 컴파일러(Compiler) 설치 (0) | 2022.04.28 |
GCC 버전과 C++ 버전 매칭 (0) | 2022.04.22 |