Linux gcc 컴파일 과정 및 옵션
for WOWLinux
gcc 컴파일 과정
main 이라는 파일을 예로 들때 main.c → main.i → main.s (여기까지는 text형) →main.o → main (binary형)
gcc –o main main.c 로 컴파일하면 실행파일만 생성하고 위 중간과정 파일은 자동 생략된다.
gcc –v –save-temps –o main main.c |
–v 옵션 : 컴파일되는 과정을 화면으로 출력한다.
--save -temps 옵션 : 컴파일 과정에서 발생되는 중간 파일을 지우지 않고 저장한다.
gcc -E -o main.i main.c (전처리 단계) |
main.c 소스코드를 전처리 해서 main.i 에 저장.
gcc -S -o main.s main.c (어셈블리 파일 단계) |
main.c 소스코드를 컴파일해서 main.s 어셈블리어 소스를 저장.
gcc -c -o main.o main.c (오브젝트 파일 단계) |
main.c 소스코드를 컴파일해서 링크 전 단계인 오브젝트 파일 main.o 생성
Tip : Dos 에서의 오브젝트 파일생성 옵션 명령
cl /c main.c |
gcc 컴파일의 main.s 파일 내부의 main 함수의 시작
결과 : 11번째 줄의 main : 이 함수의 시작부분.
cl 컴파일의 main.asm 파일 내부의 main 함수의 시작
결과 : 28번째줄의 _main PROC NEAR 이 함수의 시작 부분
※ 위의 두 결과를 보고 어셈블리 파일은 컴파일러의 종류에따라 각각 문법이 다르다는 것을 알수있다.
[ftz] hacker school level1 문제 풀이 (0) | 2020.04.27 |
---|---|
[RedHat] 쉘코드(Shellcode) 만들기 실습 (0) | 2020.04.22 |
Linux 명령어 및 네트워크 상식/if else (0) | 2017.09.13 |
WOWLINUX 기초 및 명령어/VI 편집기 (0) | 2017.09.07 |
리눅스 인터넷 IP주소 세팅 (0) | 2017.07.18 |