Systems/Unix2012.12.14 16:10

어떤 소스를 열심히 다운받아서 tar zxvf로 압축을 해제한 다음에 ./configure ; make ; make install 하고 나서 프로그램 컴파일 시에 라이브러리를 열심히 링크해서 딱 실행하려고 하면!!!


Error while loading shared libraries: ....


라는 오류 메시지와 마주하게 될 떄가 있다. 



캐난감


이런 캐난감한 상황을 타개하기 위해서는 먼저, /etc/ld.so.conf.d/라는 디렉터리가 있는 지 본다. 


있으면 문제를 해결하기 간단하다. 해당 디렉터리 아래에, 방금 설치한 라이브러리의 *.so 파일 위치를 가리키는 xxx.conf 파일을 하나 만들어 넣어주면 되기 때문.


필자가 설치했던 glog (Google Logging) 라이브러리는 기본적으로 make install하면 *.so 파일을 /usr/local/lib 아래에 깔아두기 때문에, vi /etc/ld.so.conf.d/local.conf 를 실행하여 해당 파일에 다음을 적어주었다. 


/usr/local/lib


이렇게 하는 것으로 끝이면 좋겠지만 아니다!!!


이렇게 한 다음에 반드시 


/sbin/ldconfig 


위의 명령을 실행해 주어야 한다. (실행에 좀 오래 걸릴 수도 있다.)


그리고 나서 아까 실행했던 프로그램을 다시 실행해 보면, 거짓말 같이 오류 메시지는 사라질 것이다. 


물론 이 방법만 먹히는 것은 아니고, 임시 땜빵으로 쓸 수 있는 방법으로는 


export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<설치한 라이브러리의 *.so 파일이 있는 경로>


와 같이 하여 환경 변수를 설정해 준 다음에 다시 프로그램을 실행하는 방법도 있다. 



저작자 표시 비영리 변경 금지
신고
Posted by 이병준

소중한 의견, 감사합니다. ^^

  1. DD

    감사합니다.

    2014.01.09 00:24 신고 [ ADDR : EDIT/ DEL : REPLY ]
  2. dd

    저도 감사합니다.

    2014.10.03 17:51 신고 [ ADDR : EDIT/ DEL : REPLY ]
  3. asdf

    꼬박 하루 삽질하고 여기서 해답을 찾네요 감사합니다.

    2015.07.09 15:29 신고 [ ADDR : EDIT/ DEL : REPLY ]