링커, 로더, 실행 파일
정적 라이브러리(.a 파일)와 함께 링크할 때 링커가 실행 파일에 포함시키는 것으로 올바른 것은?
- A라이브러리 안의 모든 오브젝트 파일
- B라이브러리의 파일 이름뿐이며 코드는 포함시키지 않는다
- C라이브러리 안의 오브젝트 파일 중 미정의 참조를 해결하는 데 필요한 것만
정답과 해설 보기
정답: C. 라이브러리 안의 오브젝트 파일 중 미정의 참조를 해결하는 데 필요한 것만
정적 라이브러리는 많은 오브젝트 파일을 하나로 모은 아카이브입니다. 링커는 아직 정의를 찾지 못한 심볼을 정의하고 있는 오브젝트 파일만 아카이브에서 꺼내 포함시킵니다. 그래서 표준 라이브러리처럼 많은 함수를 포함한 라이브러리라도 사용한 함수만큼만 실행 파일이 커집니다.
- A. 모두 넣으면 실행 파일이 쓸데없이 커집니다.
- B. 이름만 기록하는 것은 동적 링크입니다.
- C. 올바릅니다. 쓰지 않는 부분은 들어가지 않습니다.