라이브러리가 링크된 라이브러리 버전 찾기

라이브러리가 링크된 라이브러리 버전 찾기

알 수 없는 Ubuntu 시스템에서 컴파일된 라이브러리가 있고 해당 시스템이 컴파일된 Ubuntu 버전을 확인하고 싶습니다.

내 생각은 사용되는 다양한 라이브러리(예: 커널)의 버전을 찾고 이러한 버전이 버전에 따라 변경된다는 것을 아는 것입니다. 사용해 보았 nm으나 ldd이에 대한 정보를 찾을 수 없는 것 같습니다.

어떤 제안이 있으십니까?

답변1

아마도

 readelf -a 

ELF 파일에 대한 정보를 표시합니다. 작업 중인 개체에 여전히 주석 섹션이 포함되어 있는 경우 다음을 통해 주석 섹션을 추출해 볼 수 있습니다.

 readelf -p .comment yourfile

예를 들어

$ cat test.c
int main () {
  return 0;
}
$ gcc test.c
$ readelf -p .comment a.out

String dump of section '.comment':
  [     0]  GCC: (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1

objdump동일한 정보를 제공받을 수 있습니다.

readelf -a주석 부분이 제거된 경우 C++ 컴파일 라이브러리인 경우 명령에서 GCC 런타임 기호 버전 정보를 읽어 볼 수 있습니다. 이는 컴파일러에 제공되는 기호 버전이지 반드시 컴파일러 버전일 필요는 없습니다. Ubuntu 버전을 추적하는 것이 얼마나 유용한지 모르겠습니다.

관련 정보