반응형
# 컴파일
컴파일은 텍스트 형태의 소스 파일을 기계어로 변환하는 것이며
컴파일러는 고급언어로 쓰여진 프로그램이 컴퓨터에서 실행되기 위해 기계어로 바꿔주는 프로그램입니다.
*.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 |
댓글