정보과학 IT

컴파일(Compile)과 빌드(Build)

물곰탱이 2013. 10. 22. 11:44

컴파일(Compile)과 빌드(Build)

 

 

컴파일(Compile)이란, 텍스트 형태로 되어 있는 소스 파일을 기계어 파일(바이너리 파일, 이진 파일)로 만드는 과정을 의미한다.


단순히 텍스트 파일로 되어 있는 것을 해당 프로그래밍 언어의 문법에 맞는지 검사하여 특별한 오류가 없다면 기계어 파일로 변경해 준다.


그러나 컴파일 된 파일은 실행 파일이 아니다. 다시 말하면 우리가 윈도우 환경에서 실행할 수 있는 .exe 파일의 형태가 아니라는 의미다.


비주얼 C++에서는 .c로 되어 있는 소스 코드를 컴파일하면 .obj 파일로 변환한다. 마찬가지로 리눅스나 유닉스에서도 .c로 되어 있는


소스 코드를 컴파일하면 .o 파일로 변환한다. 이와 같은 obj 파일이나 .o 파일을 일반적으로 오브젝트(Object) 파일이라고 부른다.




빌드(Build)는 기본적으로 실행 파일을 만드는 것을 의미한다. 사실상 하나의 소스 파일이 하나의 실행 파일로 생성되기 위해서는


컴파일(Compile) 과정과 링크(Link) 과정을 거쳐야 한다.


링크(Link)라는 것은 말 그대로 실행 파일로 만드는 데 필요한 기능들을 컴파일 된 파일에 연결시킨다는 의미이다.


따라서 .c 파일을 컴파일한 후에 생성된 오브젝트 파일들을 이용하여 링크 작업을 해야 .exe 파일이 생성된다.


비주얼 C++에서는 빌드를 통해서 링크(Link)과정을 실행한다.


만약 .c 파일이 컴파일되어 있지 않은 상태에서 빌드를 실행하면 컴파일과 링크를 모두 실행하며, 이미 .obj로 컴파일 된 파일이 존재하면


빌드를 실행했을 때 컴파일 작업을 생략하고, 링크 작업을 한 후에 실행 파일을 생성하게 되는 것이다.