Compile

    [CS] 컴파일(Compile)에 대해 보다 심도있는 내용

    컴파일(Compile) 과정이란? high-level 언어(개발자가 작성한 source code)를 lower-level 언어(어셈블리 형태로 변환한 후 binary code)인 기계어로 변환하는 과정입니다. 해당 작업을 해주는 프로그램이 Compiler입니다. Java의 경우, JVM(Java Virtual Machine)에서 byte 코드 형태의 *.class 파일이 생성됩니다. C++의 경우, MinGW, Clang에서 byte 코드 형태의 *.o(Object file) 파일이 생성됩니다. 컴파일 과정은 두가지로 분리할 수 있습니다. 해석 유닛 생성 (Translation Unit): 소위 말하는 컴파일이 이루어집니다. 전처리기 토큰들이 컴파일 토큰으로 변환이 되고, 컴파일 토큰들은 컴파일러에 의해..

    [CS] 컴파일(Compile), 링킹(Linking), 빌드(Build), 배포(Release, Deploy, Distribute) 란?

    1. 컴파일(Compile): 사용자가 작성한 코드를 컴퓨터가 이해할 수 있는 언어로 번역하는 일 2. 링크(Link): 컴파일된 소스코드를 연결하는 일 3. 빌드(Build): 컴파일된 코드를 실제 실행할 수 있는 상태로 만드는 일 4. 배포 * Release: 같은 제품을 새롭게 만드는 것 * Deploy: 프로그램 등을 서버와 같은 기기에 설치하여 서비스 등을 제공하는 의미 * Distribute: 제품을 사용자들이 사용할 수 있도록 서비스 등을 제공하는 의미 C++ 코드를 실행파일로 변환하는 과정. 전처리(Preprocessing) 단계: #include 와 #define 와 같은 전처리기 매크로들을 처리합니다. 컴파일 (Compile) 단계: 각각의 소스 파일들을 어셈블리 명령어로 변환합니다. ..