소나메

soname

유닉스 및 유닉스 유사 운영 체제에서 soname공유 객체 파일에 있는 데이터 필드다.[1] 소나메는 문자열로, 개체의 기능성을 설명하는 "논리적 이름"으로 사용된다. 일반적으로 이 이름은 라이브러리의 파일 이름 또는 접두사와 동일하다. libc.so.6.

이름

소나메는 종종 버전 역호환성 정보를 제공하는 데 사용된다.[2] 예를 들어, 공유 라이브러리의 1.0에서 1.9 버전인 경우 libx 예를 들어, 동일한 인터페이스를 제공하면 모두 동일한 소네임을 가질 수 있다. libx.so.1. 시스템에 파일 이름이 있는 공유 개체의 버전 1.3만 포함된 경우 libx.so.1.3공유 객체의 soname 필드는 이 필드를 사용하여 원래 버전 1.2를 사용하여 컴파일된 이진 파일의 종속성을 채우는 데 사용할 수 있음을 시스템에 알려준다.[3]

라이브러리의 응용 프로그램 이진 인터페이스(ABI)가 역호환성 방식으로 변경되면 소나메는 예를 들어 다음과 같이 증가될 것이다. libX.so.5libX.so.6.

GNU 링커는 -hname 또는 -soname=name 라이브러리 이름 필드를 지정하십시오. 내부적으로는 링커가 DT_SONAME 야전하여 로 채우다. name.

공유 오브젝트 파일이 있을 경우, 다음 명령을 사용하여 objdump를 사용하여 라이브러리 파일 내에서 정보를 가져올 수 있다.

$ objdump -p libx.so.1.3 grep SONAME SONAME libx.so.1 

참고 항목

참조

  1. ^ Wheeler, David (2003-04-11). "Program Library HOWTO". tldp.org. Retrieved 2021-01-04.
  2. ^ Staerk, Thorsten (2011-03-25). "Library-related Commands and Files: soname". LinuxQuestions.org. Retrieved 2018-02-07.
  3. ^ Bansal, Ashish (2001-04-01). "Shared objects for the object disoriented: How to write dynamically loadable libraries". IBM DeveloperWorks. Retrieved 2018-02-07.