본문으로 바로가기

 

컴파일러와 링커

 

- Clang

C는 컴파일러에 의해 소스파일(.c)이 오브젝트 코드(.obj, )로 컴파일된다.

목적 파일은 0과 1로 이루어진 바이너리 코드이며, 일반적으로 하나의 .c 파일당 하나의 .obj가 컴파일된다.

오브젝트 코드 간의 의존성 관계를 링커(Linker)가 연결하여 실행 파일 (.exe)를 만들어낸다.

.c ==컴파일==> .obj ==링커==> .exe

 

직접 컴파일러를 통해 .exe를 만들어보는 것도 java에 비해 간단하다. 컴파일하고, exe를 실행하면 끝이다.

// 소스코드 경로로 이동 후
// hello.c를 컴파일하되 hello.exe라는 이름으로 exe를 생성하라
gcc hello.c -o hello.exe

// 생성된 exe 실행
./hello.exe

 

만약 Cpp를 사용하고 있다면 컴파일러를 g++로만 교체하면 된다.

 

 

 

- Java (참고)

Java에서는 컴파일러(javac)에 의해 소스파일(.java)이 컴퓨터가 바로 인식할 수 없는 바이트코드(.class)로 변환된다. 바이트 코드는 JVM이 이해할 수 있는 언어로, JVM이 또 한 번 번역 과정을 거쳐야 기계가 이해할 수 있다.

.java ==javac(자바컴파일러)==> .class ==JVM==>  .exe

자바를 직접 컴파일, 실행하는 방법은 아래 포스트를 참고하자

darrengwon.tistory.com/820?category=910003

 

 

 

 


darren, dev blog
블로그 이미지 DarrenKwonDev 님의 블로그
VISITOR 오늘 / 전체