링커, 로더, 실행 파일
동적 링크를 사용한 프로그램을 다른 컴퓨터에 복사해 실행했더니 시작되지 않았다. 가장 가능성이 높은 원인은?
- A실행 파일 안에 라이브러리 코드가 모두 들어 있어 너무 컸기 때문
- B동적 링크 프로그램은 만든 컴퓨터에서만 동작한다는 규칙이 있기 때문
- C필요한 공유 라이브러리가 설치되어 있지 않거나, 호환되지 않는 버전만 있기 때문
정답과 해설 보기
정답: C. 필요한 공유 라이브러리가 설치되어 있지 않거나, 호환되지 않는 버전만 있기 때문
동적 링크 프로그램은 실행하는 컴퓨터에 있는 공유 라이브러리를 사용합니다. 필요한 라이브러리가 없거나 함수가 부족한 오래된 버전만 있으면 동적 링커가 결합하지 못해 시작에 실패합니다. Linux에서는 ldd 명령으로 프로그램이 필요로 하는 공유 라이브러리와 그것이 발견되는지를 확인할 수 있습니다. 배포하기 쉽도록 일부러 정적 링크로 만들기도 합니다.
- A. 동적 링크에서는 라이브러리 코드가 실행 파일에 들어가지 않습니다.
- B. 그런 규칙은 없습니다.
- C. 올바릅니다. 실행 환경의 라이브러리에 의존합니다.