[질문] HP에서 so 파일 만들 때, 로드 문제.
글쓴이: bizzare / 작성시간: 금, 2006/02/17 - 5:51오후
새벽부터 질문을 올리고 한 끝에 거의 정리가 되긴 한 것 같습니다. ^^ 이제 조금만 더하면 될 듯.
질문 들어갑니다~
A.so가 B.so를 필요로 할 경우,
A.so를 dlopen으로 Load할 때에는 기본적으로는 Library Path에 등록된 경로에서만 B.so를 찾습니다.
이 때 이 외의 경로도 검색하도록 하기 위해 넣는 링크옵션이 다음과 같습니다.
Quote:
1) Linux => -Wl,-rpath,dir:dir
2) AIX => -blibpath:dir:dir
3) HPUX => -Wl,+b,dir,dir
그런데, A.so를 로드할 때, A.so와 같은 디렉토리에 B.so가 존재하면 로드되도록 하고 싶습니다.
이 때 리눅스의 경우, 위의 옵션을 참고로 하되-Wl,-rpath,'$ORIGIN'
을 추가해주면 되더군요.
그런데,
HPUX의 경우,-Wl,+b,'$ORIGIN'
라고 하면 아예 작동을 하지 않고, (HP에는 $ORIGIN 이 없는 것이 아닌가 하는 생각이 듭니다.)
또는 -Wl,+b,'.'
라고 하면 A.so와 같은 디렉토리를 찾는 것이 아니라, A.so를 로드하려고 하는 실행파일과 같은 디렉토리를 검색하더군요.
결론부터 말하면 리눅스와 마찬가지로 A.so로 하여금 로드시에 A.so가 존재하는 디렉토리에서 라이브러리(B.so)를
찾아서 로드하게 하려면 어떻게 해야하나요.
답변 부탁드립니다.
Forums:
댓글 달기