glibc 2.14가 memcpy
(bug 12518 수정)의 새 버전을 도입 한 것으로 보입니다. glibc 2.14+에 대해 컴파일 된 프로그램은 [email protected]_2.14
에 대한 동적 링크를 포함하며 이전 버전의 glibc에서는 사용할 수 없습니다.이전 버전과 호환되는 동적 연결을 만드는 방법은 무엇입니까?
그러나 glibc 2.14+에는 분명히 이전 버전과의 호환성을 위해 이전 [email protected]_2.2.5
기호가 포함되어 있습니다. 나는 이전 glibc 버전과 바이너리 호환되는 방식으로 몇 가지 프로그램을 컴파일 할 수 있기를 원합니다. 어떻게 glibc 2.14+가있는 시스템에서이 오래된 심볼 버전을 사용하도록 프로그램을 컴파일합니까? 절차가 컴파일러에 따라 다르면 GCC를 사용하고 있습니다 (그러나 다른 컴파일러에서도이를 수행하는 방법을 알고있는 것이 좋습니다).
(버전 메모를 제작하는 방법 및 사용 방법, 버전이 지정된 기호가 ELF에만 해당되는지 또는 표준 부품으로 간주되어야하는지에 대해서는 잘 모름) 현대 ABI의 문서를 찾을 수 없었습니다. 주제에 대한 유용한 정보가 있습니까?
유일한 방법입니까? 링크를 변경하기 위해 소스 코드를 수정하지 않아도 좋을 것입니다. 최종 실행 파일을 생성 할 때 심볼 버전을 선택하도록 링커에 지시 할 방법이 없으며, 소스 코드 레벨에서 실행하는 것이 아닙니다. – Dolda2000
그런데 링크를 가져 주셔서 감사합니다! – Dolda2000
그 방법은 기호 버전 관리 수준에서 손으로 처리하는 것입니다. 이는 내가 생각한 것입니다. 더 간단한 방법은 기존 .a/.so/.h 파일을 사용하여 구형 소프트웨어 설치를 유지하고 컴파일/링크하는 것입니다. – fche