2016-11-11 2 views

답변

1

:

ELF는 실행 파일, 오브젝트 코드, 공유 라이브러리에 대한 공통 표준 파일 형식이며, 코어 덤프합니다.

네이티브 또는 크로스 컴파일러 사용 여부는 elf 파일 생성 방법과 아무 관련이 없습니다. 크로스 컴파일러는 현재 컴파일 할 때 사용하는 플랫폼과 다른 HW 플랫폼 용으로 컴파일한다는 점을 고려합니다.

2

컴파일러의 역할은 이상적으로 높은 쪽에서 낮은쪽으로 변환하는 것입니다. C에서 자바, 바이트 코드 등의 어셈블리 언어. 파일을 저장하고 파일을 저장하십시오. 일반적으로 사람들은 컴파일러가 어셈블리 언어 (텍스트)를 내보내는 어셈블러 (일반적으로 하드 및 빠른 규칙이 아님)를 보지 않습니다. 그러면 어셈블러에 입력 된 다음 elf 또는 coff 등이됩니다. 정보를 저장하기 위해 파일 형식이 필요하지 않습니다. 정보가 바이너리 (기계 코드)가되면 어떤 파일 형식 (모든 파일 형식)이 필요합니다. 컴파일러 제작자/설계자는 지원할 파일 형식을 선택하게되며, 엘프는 충분히 일반적이고 잘 작동하므로 나쁜 선택이 아닙니다.

컴파일러와 아무런 관련이 없습니다. 어셈블러 및 링커의 출력을 저장하는 데 사용할 수있는 파일 형식 일뿐입니다. 파일 형식이 있어야합니다.

툴체인이 타겟 또는 플랫폼의 조합에 따라 다른 기본 파일 형식을 선택할 수도 있습니다. 예를 들어 Windows에서 gnu를 사용하면 .EXE 파일이 기본 파일과 동일한 gnu 소스를 선택할 수 있습니다 형식을 리눅스 컴파일러로 컴파일 할 때. 그리고 자연적인 확장은 gnu 도구가 다른 타겟 프로세서 및/또는 플랫폼의 조합에 사용하는 다른 기본 파일 형식을 가질 수 있다는 것입니다.

엘프는 일반적으로 조금 일반적이며 특정 마커와 기능은 대상 프로세서와 플랫폼의 조합에서 사용할 수 있으므로 다른 종류의 엘프를 볼 수 있습니다. objcopy를 사용하여 인텔 16 진수 형식을 살펴보면 대상 프로세서 유형에 따라 출력이 달라집니다.

+0

매우 감사드립니다 ... – sivaraj