에서 386비트 옵션과 32비트 옵션의 차이점은 무엇입니까 ld -V
?
elf32_x86_64
elf_i386
i386linux
i386pep
i386pe
그리고 이러한 "에뮬레이션 모드"에 대한 문서는 어디서 찾을 수 있나요?
답변1
"시뮬레이션"은 다른 것을 선택합니다링커 스크립트; /usr/lib/ldscripts
시스템에서 스크립트 자체를 찾을 수 있습니다. 귀하가 나열한 시뮬레이션은 다음과 같습니다.
elf32_x86_64
: x64-32용 ELF, 일명x32— 32비트 x86-64 바이너리elf_i386
: i386용 ELF — 32비트 i386 바이너리i386linux
: a.i386 중i386pep
: x86-64용 PE+ — Windows 형식 64비트 바이너리i386pe
:PE for i386 — Windows 형식의 32비트 바이너리
링커 스크립트는 출력 형식과 아키텍처, 검색 디렉터리( ld
라이브러리를 찾을 위치), 바이너리의 부분 등을 정의합니다.
링커 스크립트 형식은 잘 문서화되어 있지만(위 참조) 사용 가능한 스크립트는 그렇지 않습니다. 대부분의 경우 GCC는 올바른 스크립트를 지정하므로 걱정할 필요가 없지만 다른 경우에는 읽게 됩니다. 링커 스크립트 자체가 무엇을 하는지 파악합니다.