링커, 로더, 실행 파일
컴파일러가 하나의 소스 파일에서 출력하는 오브젝트 파일(.o)에 대한 설명으로 올바른 것은?
- A그대로 OS에서 실행할 수 있는 완성된 프로그램이다
- B소스 코드를 압축한 것일 뿐 기계어는 포함하지 않는다
- C기계어를 포함하지만, 다른 파일에 있는 함수나 변수의 주소는 아직 정해지지 않았다
정답과 해설 보기
정답: C. 기계어를 포함하지만, 다른 파일에 있는 함수나 변수의 주소는 아직 정해지지 않았다
오브젝트 파일에는 해당 파일의 함수를 번역한 기계어, 변수의 초깃값, 정의하거나 참조하는 이름의 목록(심볼 테이블), 나중에 주소를 채워 넣을 위치의 목록(재배치 정보)이 들어 있습니다. printf처럼 다른 파일에 있는 함수를 호출하는 명령은 주소를 알 수 없으므로 임시 값인 채로 남아 있습니다. 링커가 여러 오브젝트 파일을 합쳐 주소를 정하고 실행 파일을 만듭니다.
- A. 실행하려면 링크가 필요합니다.
- B. 내용물은 기계어와 그 부가 정보입니다.
- C. 올바릅니다. 주소는 링크할 때 정해집니다.