Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- javacript
- 위크맵
- JSON.stringify
- logstash
- 참조에 의한 객체 복사
- 화살표 함수
- 구조 분해 할당
- Map
- react-slick
- nodemailer
- 캐러셀
- Mongoose
- nest
- JavaScript
- DB
- nextjs
- context switch
- 카카오로그인
- 로그스태시
- 중첩 구조 분해
- 자바스크립트
- JSON.parse
- 위크셋
- TypeScript
- MongoDB
- 카카오 소셜로그인
- nestjs
- 이메일 전송
- AGGREGATE
- 객체
Archives
- Today
- Total
뚜sh뚜sh
소스 코드가 명령어가 되기까지 본문
C언어 컴파일 과정
- 전처리기(preprocessor) -> 컴파일러(compiler) -> 어셈블러(assembler) -> 링커(linker)
전처리 과정 (preprocessing)
- 본격적으로 컴파일하기 전에 처리할 작업들
- 외부에 선언된 다양한 소스 코드, 라이브러리 포함(e.g. #include)
- 프로그래밍의 편의를 위해 작성된 매크로 변환(e.g. #define)
- 컴파일할 영역 명시(e.g. #if, #ifdef, ...)
- 소스 파일이 test.c 였다면 결과 파일은 test.i 형태가 됨
컴파일 과정(compiling)
- 전처리가 완료되어도 여전히 소스 코드
- 전처리 완료된 소스 코드를 저급 언어(어셈블리 언어)로 변환
- 결과 파일은 test.s 형태임
어셈블 과정(assembling)
- 어셈블리어를 기계어로 변환
- 목적 코드(object file)를 포함하는 목적 파일이 됨
- 결과 파일은 test.o 형태임
링킹(linking)
- 결과 파일은 test.exe 형태임
목적 파일 vs 실행 파일
- 목적 파일과 실행 파일은 둘 다 기계어로 이루어진 파일
- But, 목적 파일과 실행 파일은 다름
- 목적 파일은 링킹(linking)을 거친 이후에야 실행 파일이 됨
'컴퓨터 공학(컴퓨터 구조 + 운영체제)' 카테고리의 다른 글
레지스터 (0) | 2023.04.27 |
---|---|
ALU와 제어장치 (0) | 2023.04.27 |
명령어의 구조 (0) | 2023.04.26 |
소스 코드와 명령어 (0) | 2023.04.26 |
0과 1로 문자를 표현하는 방법 (0) | 2023.04.25 |
Comments