공유 라이브러리 링크시 예전 버젼의 라이브러리 링크 하려면?..

vigor96의 이미지

공유 라이브러리를 링크 할 때

-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 하고자 한다면 어떤식으로 명시해 줘야 하는지

알고 싶습니다...

읽어주셔서 감사합니다.

pynoos의 이미지

-l option과 so_name을 동시에 줄 수 있는 방법이 있으면 저도 알고 싶은 바입니다만...

-l option을 쓰지 마시고..

libaaa.so.2 라고 file 명을 그대로 써주시면.. 필요한 so-name이

libaaa.so.2 로 들어 갈것 같습니다.

사용하는 program의 file name을 다음과 같이 확인 해보시면 NEEDED 란에 필요한 library명이 제대로 들어가는지 확인 가능합니다.

objdump -p <file name>