본문 바로가기

Programming

빌드 과정

전처리 -> 컴파일 -> 어셈블 -> 링크

 

 

 

전처리

컴파일 전 준비, 코드에서 사용하겠다고, 변환하겠다고 해둔 부분을 실제로 추가, 변환 

#include (해당 파일을 사용하는 파일에 추가)

#define.. (변수를 define된 값으로 변환) 등등

 

*프로그래머가 해야했던 일을 대신 전처리해줌

 

 

 

 

컴파일

코드를 어셈블리 코드로 변환

 

cpu마다 사용되는 어셈블 코드가 다를 수 있음

코드는 같지만 사용되는 cpu마다 오브젝트 파일이 다르게 나옴

ex) armeabi-v7a, x86 등등

때문에 빌드 설정에서 어셈블리어를 여러개 설정하면 빌드할 때 여러버전으로 컴파일을 함

(어떤 환경에서 동작하게 될 지 모르기 때문에)

 

 

 

 

어셈블러

어셈블리 코드를 기계어로 변환하여 오브젝트 파일 생성

 

 

 

 

링커

목적 파일들을 합쳐서 하나의 실행파일(.exe) 생성

 

정적 라이브러리의 경우 해당 라이브러리는 실행파일에 합쳐짐

동적 라이브러리의 경우 동적 라이브러리와 연결을 위한 정보만 실행파일에 들어가고 라이브러리는 실행파일과 따로 존재 

 

'Programming' 카테고리의 다른 글

객체지향  (2) 2020.04.04
문자열 리터럴 상수  (0) 2020.04.04
[C#] 이란  (1) 2020.03.09
소켓 프로그래밍  (0) 2020.03.03
[C++]가상 함수  (0) 2020.03.03