HP에서 $ORIGIN
관련질문
[url]http://bbs.kldp.org/viewtopic.php?t=71090 [/url]
<a href="http://bbs.kldp.org/viewtopic.php?t=71090 ">관련질문</a>
$ORIGIN'이 안먹는 것 같다는 점입니다.
다음과 같은 폴더구조가 있다고 하죠.
/exefolder/lib_folder/
그리고 실행파일 exe와 A.so, B.so가 있다고 할 때
1)
Wl,+b,'$ORIGIN' 없이 -L/exefolder/로 링크했을 때
exe는 /무조건 /exefolder/에서만 so를 찾는 것 같습니다.
exe는 어느 디렉토리에 넣던 상관없는 것 같고요.
2)
-Wl,+b,'$ORIGIN' 를 사용하면
exe는 전혀 so 파일을 못찾더군요.
3)
그래서 제가 한번
-Wl,+b,'.' 를 옵션으로 줘봤습니다.
그러자, exe는 무조건 exe가 존재하는 디렉토리에서만 (물론 LIB_PATH포함해서) 찾는 것 같더군요.
사실 제가 원하는 것은 A.so가 B.so를 필요로 할 때,
A.so와 B.so가 lib_folder에 있고 exe가 exefolder에 있다고 해도 exe가 A.so를 fullpath로 읽으들이면 A.so는 자기가 존재하는 디렉토리에 B.so가 있으면 load되는 것인데 말이죠.
(리눅스에서는 이렇게 되더군요. -rpath를 썼을 때.)
그래서 저의 의문점은
HP에서는 '$ORIGIN' 이 제대로 인식이 안되는게 아닌가 하는 것입니다. 다른 세팅이 선행되어야 하는지도 의심이 되고요.
-Wl,+b,'$ORIGIN' 를 사용하면 아예 로드를 못하니 더 답답하더군요.
고수님들의 많은 도움 부탁드려요. T_T
댓글 달기