gcc 컴파일 생성되는 실행 파일의 file format에 관해서

alwaysrainy의 이미지

gcc 로 옵션없이 컴파일 하였을때 생성되는 a.out 파일을 가지고
objdump -f a.out 를 실행시켰을때 아래와 같은 실행 결과가 출력됩니다.

a.out: file format elf32-i386
architecture: i386, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x080482e0

현재 시스템에서 uname -m 실행시켰을때 분명 'i686' 으로 출력이 되는데
i386 형식으로 생성이 되는 이유는 무엇인가요?

김충길의 이미지

gcc 의 아키텍쳐 옵션을 이용하세요.

-m 옵션으로 시작하는 옵션일겁니다.

자세한건 man gcc 또는 info gcc

screen + vim + ctags 좋아요~