공유 라이브러리 링크시 예전 버젼의 라이브러리 링크 하려면?..
글쓴이: vigor96 / 작성시간: 월, 2003/03/03 - 4:26오후
공유 라이브러리를 링크 할 때
-laaa 이런식으로 주면
linker-name 의 라이브러리로 링크 된다고 알 고 있습니다.
예를 들어
libaaa.so -> libaaa.so.2
libaaa.so.1-> libaaa.so.1.0
libaaa.so.2-> libaaa.so.2.0
이런식으로 link 가 되어 있다면
link 시에 libaaa.so.2 로 링크가 되어서 aaa.so.2.0 라이브러리를
사용하게 되는 것으로 알고 있습니다.
여기에서 libaaa.so.1 라이브러리를 사용할 필요가 생겼습니다.
그것을 사용 하고자
-l aaa.so.1 이런식의 구문을 썼더니...
ld 에서 그러한 화일이 없다고 에러를 발생시킵니다.
aaa.so.1 를 명시적으로 밝힐 수 있는 방법이 어떤 것인지 알고 싶습니다.
즉
linker-name 이 가리키고 있지 않은 so-name 라이브러리를
link 하고자 한다면 어떤식으로 명시해 줘야 하는지
알고 싶습니다...
읽어주셔서 감사합니다.
Forums:
-l option과 so_name을 동시에 줄 수 있는 방법이 있으면 저
-l option과 so_name을 동시에 줄 수 있는 방법이 있으면 저도 알고 싶은 바입니다만...
-l option을 쓰지 마시고..
libaaa.so.2 라고 file 명을 그대로 써주시면.. 필요한 so-name이
libaaa.so.2 로 들어 갈것 같습니다.
사용하는 program의 file name을 다음과 같이 확인 해보시면 NEEDED 란에 필요한 library명이 제대로 들어가는지 확인 가능합니다.
objdump -p <file name>
---
http://coolengineer.com
댓글 달기