(C++)링커에 대해
우선 개발자가 c언어로 코딩을 한다는 가정하에 이때 개발자는 *.c 혹은 *.cpp이 될 수도 있는 파일을 작성(Cording)하게 된다. 그리고 소스파일을 빌드(Build)하게 되는데 이때 고급언어인 C언어를 보다 낮은 언어인 어셈블리어로 변환하며 그 후에 다시 어셈블리어를 기계어로 바꿔주는 역할을 컴파일러(Compiler)가 수행한다. 대부분 흔히 고급언어에서 기계어로 변환하는 것을 컴파일(Compile) 이라고 칭한다. 이 과정에서 오브젝트 파일(*.obj) 파일을 생성하게 된다. 그 후 생성된 오브젝트 파일과 사용된 함수가 포함된 함수 라이브러리를 묶어주는 작업을 실행하는데 이 과정을 링킹(Linking)이라 하며 링커(Linker)가 담당한다. 링킹의 결과로써 실행 파일(흔히 *.exe 혹은 *.com)이 만들어지게 되는데 이 파일을 로더(Loader)가 메모리에 올려야(Load)비로서 프로그램이 실행이 된다. 우리는 그냥 Ctrl+F7, Ctrl+F5를 눌렀지만 컴퓨터 내부에서는 이런 치열한 일들이 벌어지고 있었던 것이다.
댓글
댓글 쓰기