라이브러리 버전이 여러개 일때 선택적으로 사용하고 싶은 경우 어떻게 하죠?
글쓴이: munhoney / 작성시간: 토, 2012/09/15 - 5:52오전
예를 들어, libopencv_calib3.so 가 /usr/local/lib 와 /usr/lib 에 각각 다른 버전 2.3 / 2.4 로 있습니다.
우분투에서 기본 설치 하니 2.3이 설치 되었고, 필요하여 2.4를 따로 설치했죠.
어떤 경우에는 2.3의 opencv 라이브러리가 필요하고, 어떤 경우에는 2.4가 필요한데
gcc -lopencv_calib3 머 이런식으로하면 2.3 버전의 라이브러리가 링크됩니다.
선택적으로 받을 수는 없을까요?
현재는 -L 옵션을 주어서 우선 순위를 변경하는 방식으로 했습니다만... 이거 맞는 방법인지 모르겠군요.
Forums:
말한 방식은 빌드 타임에 선택적으로 한다면 그렇게
말한 방식은 빌드 타임에 선택적으로 한다면 그렇게 하는게 맞습니다.
만약 실행타임(실행 바로 직전)에 한다면 LD_LIBRARY_PATH 환경 변수를 사용할 수 있습니다.
ldd <실행파일> 명령어로 <실행파일>이 참조하는 so(shared object) 파일의 경로를 확인할 수 있습니다.
so 파일은 환경 변수 LD_LIBRARY_PATH 값을 참조합니다.
LD_LIBRARY_PATH=mypath <실행파일> 이렇게 실행하면 실행파일의 환경 변수만 변경됩니다.
현재 쉘의 환경변수 LD_LIBRARY_PATH 를 변경할 경우 export LD_LI.. 형태로 사용하면 되구요.
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
댓글 달기