ELF 파일 형식을 이해하려고 gcc로 작은 C 프로그램 (2 줄의 코드)을 컴파일했습니다. readelf -h
객체 파일을 수행하면 헤더에 있습니다.
OS/ABI: UNIX - System V
Fedora를 사용하고 있는데 왜 Linux가 아닌가요?
편집 : 내가 컴파일
int main(){
int x = 0;
x++;
}
로 gcc -o main.o -c main.c
. 내 gcc 버전은
gcc (GCC) 4.5.1 20100924 (Red Hat 4.5.1-4)
그에 따라 질문을 편집했습니다.
—
alex_reader 14:07에
방금
—
ctrl-alt-delor
readelf -h /bin/ls
데비안 GNU / 리눅스에서 했어요 . 또한 보여 주었다 OS/ABI: UNIX - System V
. 제 생각에는 ABI가 리눅스뿐만 아니라 둘 이상의 커널에서 사용된다는 것입니다. 또한 리눅스가 하나 이상의 ABI를 지원한다는 것을 알고 있습니다.
위키 백과는 말한다 그것은 [ELF 헤더의 OSABI 필드가 종종로 설정 0 [시스템 V]에 관계없이 대상 플랫폼의
—
스테판 Chazelas가
이 필드는 ELF 파일이 OS 특정 확장자를 사용 중인지 여부를 알려줍니다. 기본값은 0입니다. 자세한 설명은 여기 (EI_OSABI)입니다.
—
Leiaz
gcc --version
및 iii) 컴파일에 사용한 정확한 명령을 보여주십시오.