[질문] 기존 공유라이브러리(lib1.so)에서 새로운 공유라이브러리(lib2.so) 호출
글쓴이: zipsinworm / 작성시간: 수, 2007/05/16 - 1:49오후
안녕하세요. 이번에는 공유라이브러리가 속썩이네요. ;(
main.c와 lib1.so와 lib2.so가 있는데요. main.c가 lib1.so를 dlopen로 이용해서 load시키고요.
lib1.so도 dlopen을 이용해서 lib2.so를 load시키는데 lib1.so은 잘 올라가거든요.
근데 lib1.so에서 lib2.so를 못 올립니다.
(lib1.so Makefile)
gcc -shared -Wl,-soname,lib1.so.0 -o lib1.so.0.0 lib.o -lc
/sbin/ldconfig -n .
ln -sf lib1.so.0 lib1.so
gcc main.o -L . -ldl -o main
이고 lib2.so도 "gcc main.o -L . -ldl -o main"을 제외하고 위와 같습니다.
단지 lib2.so는 다른 디렉토리에서 만들었습니다.(main.c와 lib1.so는 /test/lib1에서, lib2.so는 /test/lib2에서 만들었습니다.)
그리고 lib1.so와 lib2.so를 전부 /lib밑으로 복사했습니다.
그런데 왜 lib1.so가 lib2.so를 load시키지 못하나요? :(
Forums:
아! 한가지더..
so를 Load시킬때 각각
handel = dlopen("lib1.so",RTLD_NOW);
handel = dlopen("lib2.so",RTLD_NOW);
이러한 옵션을 사용했습니다.
댓글 달기