본문 바로가기
컴퓨터공학/운영체제

컴파일러 | 빌드 컴파일 링크

by KISCH 2019. 10. 17.
반응형

 

컴파일러

 

# 컴파일

 

컴파일은 텍스트 형태의 소스 파일을 기계어로 변환하는 것이며

컴파일러는 고급언어로 쓰여진 프로그램이 컴퓨터에서 실행되기 위해 기계어로 바꿔주는 프로그램입니다.

*.c -> *.obj

 

 

# 링크

 

컴파일한 output을 가지고 최종적인 실행 가능한 파일을 만드는데 필요한 부분 연결하는 작업

*.obj -> *.exe

정적링크 : 프로그램 실행 전에 필요한 부분 결합

동적링크 : 프로그램 실행 중에 필요한 프로그램을 결합. 연결

목적코드를 라이브러리와 연결

링커 : 링크를 해주는 프로그램

 

 

# 빌드

 

빌드란 컴파일과 링크를 통해 최종적인 실행 가능한 파일을 만드는 것을 말합니다.

컴파일 + 링크 = 실행파일

[소스코드] ---컴파일러--> [목적코드(object) 생성] ---링커---> [실행파일]

 

 

#컴파일 방식

 

AOT(Ahead of Time)

설치시점에 소스코드를 번역 ->  설치가 느리고 용량 많이 먹는다

실행시점에 미리 번역한 파일을 실행 -> 빠르다

 

JIT(Just in Time)

설치가 빠름

프로그램을 실제 실행하는 시점에 기계어로 번역

실행시점에 매번 번역해야 해서 느리다

 

 

#컴파일러

 

거의 모든 컴파일러들은 C++를 이용하여 기계어를 생성 할 수 있기때문에 기계로 번역 전에 C++로 만드는 과정필요

IL2cpp

[C#코드] ---msc.exe---> [IL코드]

[IL코드] ---IL2cpp---> [C++]

[C++] ---gcc---> [기계어]

LLVM (Low Level Virtual Machine compiler)

애플이 현존하는 컴파일러 기법들을 연구하기 위해 개발된 언어 독립적 컴파일러 컴포넌트

Mono2x

gcc

 

반응형

'컴퓨터공학 > 운영체제' 카테고리의 다른 글

인텔 CPU 코어와 세대 구분  (0) 2020.01.29
윈도우 | 멀티부팅 화면 띄우기  (0) 2019.12.25
IT 관련 용어  (0) 2019.12.19
MAC | OS 버전과 설치  (2) 2019.11.29
알고리즘 | 종류 (탐색, 정렬, 그리드)  (0) 2019.04.26
운영체제 | 컴퓨터 파일시스템  (0) 2018.06.08
MAC | 설정  (0) 2018.06.08
MAC | 멀티부팅과 부팅캠프  (0) 2018.05.16

댓글