같은 이름의 버전이 다른 라이브러리를 동시에 사용할 경우...
글쓴이: 김일목 / 작성시간: 월, 2007/10/22 - 12:35오전
얼마전에 Gutsy를 깔고 Google toolbar Bookmarks 기능이 잘 되지 않아서
알아본 결과 Google toolbar가 libstdc++5를 사용하는 것을 알고
libstds++5 를 설치 했습니다. 제 컴에는 libstdc++6 가 이미 깔려 있구요...
문제도 해결되고 지금까지 아무런 문제는 없었지만.. 혹시나 하는 맘에.. 질문 드립니다.
혹시 이렇게 같은 이름의 다른 버전의 라이브러리를 동시에 사용할 경우
문제가 발생하지는 않나요?
Forums:
libstdc++6를 사용하는
libstdc++6를 사용하는 프로그램은 /usr/lib/libstdc++.so.6 에서 공유라이브러리를 찾고
libstdc++5를 사용하는 프로그램은 /usr/lib/libstdc++.so.5 에서 공유라이브러리를 찾습니다.
고로 아무 문제 없습니다.
그리고 /usr/lib/libstdc++.so.6는 /usr/lib/libstdc++.so.6.0.8와 같은 실제 라이브러리 파일을 가리키는 심볼릭 링크입니다.
만약 libstdc++6를 6.0.9로 업그래이드 한다면 /usr/lib/libstdc++.so.6.0.9가 설치되고 /usr/lib/libstdc++.so.6는 /usr/lib/libstdc++.so.6.0.9를 가리키게 됩니다.
따라서 libstdc++6를 사용하는 모든 프로그램은 자동으로 새 버젼의 라이브러리를 사용하게 됩니다.
이런식으로 libstdc++5와 libstdc++6는 각각 업그래이드가 가능하고 호환성도 유지됩니다.
호환성이 깨지는 업드래이드가 되는 경우에는 libstdc++7과 같이 이름이 완전히 바뀌게 되기 때문입니다.
윈도우에서는 .Net을 쓰지 않는이상 dll지옥을 해결하기 힘들죠..
댓글 달기