본문 바로가기

컴파일2

[C언어]컴파일(Compilation) 단계 전처리 단계에 이어서 컴파일 단계에 대해서 알아보자. 컴파일은 컴파일러가 담당을 하고 확장된 소스코드 하나를 입력받아서 어셈블리어로 출력을 하게 된다. 어셈블리어란? 어셈블리어는 기계어와 1:1로 대응하는 언어로 하드웨어에 가깝다. 출력되는 파일이 아직까지도 텍스트 파일이기 때문에 사람들이 읽을 수 있다. 기계는 아직까지도 읽지 못한다. 어셈블리어는 바이러니(이진) 코드가 아니기 때문이다. 그리고 어셈블리코드는 정의를 모르는 심볼을 사용할 수 있다. 심볼의 예를 들면 함수나 변수의 이름을 뜻한다. 그래서 이전에 배운 헤더파일을 통한 선언 만으로 컴파일이 가능하게 된다!! 컴파일러가 심볼의 선언만 보고 판단하는 과정을 설명하겠다. 함수나 변수가 선언이 되어 있네? 근데 정의를 찾지 못하겠다. 일단 프로그래.. 2023. 2. 16.
[C언어]C프로그램 빌드 과정(컴파일,링크,빌드의 차이) 빌드(build)란? 빌드의 뜻은 소스코드를 기계가 이해할 수 있는 기계어로 변환해 주는 과정으로 명령어를 모두 모아서 실행 가능한 실행파일로 만드는 과정으로 세부적으로 나누면 4가지로 나뉘어진다. 전처리(Preprocessing) 컴파일(Compilation) 어셈블(Assembling) 링크(Linking) 빌드안에 컴파일이랑 링크가 속해있는 것으로 보면 된다. 사람마다 전처리,컴파일,어셈블전체를 컴파일로 불러서 빌드 단계를 두 단계로 보는 경우도 있다. 컴파일 링크 컴파일(Compile)이란? 컴파일러가 전처리기가 처리해준 소스 코드를 이용해서 어셈블리어로 바꿔주는 과정을 말한다. 어셈블리어는 기계어와 1:1로 대응이 되는 언어로 하드웨어에 가까운 언어이다. 어셈블리어를 기계어라고 부르기에는 조금 .. 2023. 2. 15.