shared object 에 대해서 질문좀
글쓴이: iamslash / 작성시간: 목, 2003/10/23 - 11:55오전
제가 A라는 시스템에서 /export/home/a/a.out 을 만들었습니다.
a.out 은 /usr/lib/libc.so.1 을 사용합니다.
B라는 시스템에 a.out 을 copy 했습니다.
이때 A라는 시스템에서 사용했던 libc.so.1 을 같이 copy 했습니다.
실행했을때 제가 copy 해온 libc.so.1 을 사용할 수 있게 하려면
LD_LIBRARY_PATH 의 맨앞에 제가 가지고 온 libc.so.1의 패스만 정해주면
되는 것 아닌가요?
B 시스템에서 a.out 을 실행했을때 core 가 발생하여 gdb로 core를 보면
이상하게 /usr/lib/libc.so.1 을 로딩하는 군요
/export/home/b/libc.so.1 을 로딩안하구요
좋은 지적 바랍니다.
Forums:
a.out ::linker::map
a.out의 원소스 컴파일시에 링커가 a.out의 맵을 작성할때,libc.so.1 위치를
/usr/lib/라고 작성했기때문아닐까요?
또한,사용자가 작성한 .so파일을 시스템이 로딩하기 위해서는 /etc/ld.so.conf에 /export/home/b/ 시스템에 알려줘야 되지 않을까 합니다
마지막으로,so파일이름을 지어주실때는 시스템에서 사용하는 이름과 같은 이름은 가급적 피하는것이 좋지 않을까도 생각해봅니다.
즐거운 하루되세요;감사합니다.
In the UNIX,
화일 시스템은 지평적인 공간 감각을 제공하며 ,
프로세스는 생명을 갖는 생명체와 같아보인다.
--BACH
댓글 달기