Library
-
readelf – useful command than lddIT/DevOps 2015. 11. 30.
얼마 전 테스트 때문에 openSSL 버전 변경을 위해서 임시로 동적 라이브러리를 정적 라이브러리 참조로 변경하였다. 재 빌드 후, ldd 명령으로 동적 라이브러리 참조가 없어졌는지 확인해보려고 했지만 그대로 남아있었다. root@tmp:~/# ldd sample | grep ssl libssl.so.0.9.8 => /usr/lib/libssl.so.0.9.8 (0x00007f67639c0000) 정적 라이브러리를 참조하도록 빌드 옵션등을 다 변경하고 빌드까지 완료했는데 왜 ldd에서 해당 내용이 나오는걸까? 몇 번을 반복하고 빌드 옵션을 다시 살펴봐도 결과는 계속 동일 했었다. 무엇이 문제일까 고민을 하다가 결국 파일을 직접 열어보기로 했다. readelf root@tmp:~/# readelf -d s..
-
library linkingIT/Linux C 2013. 7. 27.
linux librarylinux는 windows와 달리, 시스템에서 동일 library의 여러 버전을 가지고 있는 것을 권장하지 않는다. 그래서 yum 또는 apt같은 패키지 배포에서는 library 의존성에 맞게 설치하게 되어 있다. 배포판 관리입장에서는 정교하게 library와 프로그램을 지원해주는 일을 하고 있고, 호환성을 위해 바로 이전 버전의 library를 함께 설치가능하게 지원>하는 등의 배려는 하고 있다. library force link 그런일이 일어나지 않아야 하지만, 제품의 호환성과 준비 시간의 문제로 하나의 시스템에 여러 library 버전을 설치해야 하는 경우도 있다. 여기서 문제는 동일 library의 다른 버전으로 두 개 설치되었다고 해서 우리가 원하는 버전을 참조하지 않을 ..