Linux gcc 컴파일 과정 및 옵션
for WOWLinux
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
🔔 결과 : 11번째 줄의 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 |