본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
Linker; 링커, 연계 편집기(Linkage Editor)
프로그램을 실행 가능한 상태로 만들기 위해 여러 개의 목적 모듈을 하나로 묶는 역할을 하는 프로그램
  • 컴파일러·어셈블러가 만든 목적 프로그램(목적 모듈) 여러 개와 라이브러리 함수를 하나로 합쳐 실행 가능한 로드 모듈을 만든다
  • 다른 모듈에 있는 함수·변수를 가리키는 외부 참조를 해결해 실제 주소로 이어 준다
  • 모듈마다 0번지에서 시작하던 주소를 합친 파일 안의 주소로 다시 맞춘다(재배치 정보 정리)

원시 프로그램 → 컴파일러 → 목적 프로그램 → 링커 → 로드 모듈 → 로더 → 주기억장치에서 실행

  • 컴파일러는 소스를 기계어 목적 프로그램으로 번역하고, 링커는 그것들을 묶어 실행 파일을 만들며, 로더는 실행 파일을 메모리에 올려 실행을 시작한다. 그래서 순서는 컴파일러 → 링커 → 로더다
  • 로더가 연결(Linking) 기능을 함께 하는 경우도 있다(직접 연결 로더, 동적 연결 로더)

정적 링킹과 동적 링킹

편집 원본 편집
구분 정적 링킹 동적 링킹
시점 실행 파일을 만들 때 실행할 때(적재 시 또는 처음 호출 시)
라이브러리 실행 파일 안에 복사된다 공유 라이브러리(.so, .dll)를 함께 쓴다
장단점 실행 파일이 크지만 혼자 돈다 실행 파일이 작고 메모리를 아끼지만 라이브러리가 있어야 돈다