객체 파일이란 무엇입니까?
객체 파일은 컴파일러라는 프로그램에서 생성 된 컴퓨터 파일이며 데이터와 지침을 포함합니다. 컴파일러는 프로그래밍 언어 소스 코드를 객체 코드로 알려진 중간 기계 읽을 수있는 양식으로 변환합니다. 소규모 프로그램은 단일 객체 파일로 컴파일 될 수 있으며, 큰 프로그램은 일반적으로 관련 기능의 여러 파일로 컴파일됩니다. 이러한 개별 객체 파일은 링커로 결합되며 운영 체제 별 정보는 실행 가능한 프로그램을 형성하기 위해 추가됩니다.
공통적으로 객체 파일은 ".obj"파일 확장자로 표시됩니다. 그러나 이러한 파일에는 여러 가지 형식이 있습니다. 가장 일반적인 것은 Intel® repiatable 객체 모듈 형식 (OMF)과 Windows & Reg 및 Unix® System V의 COFF (Common Object File Format)입니다.
형식에 관계없이 객체 파일에는 일반적으로 세 가지 유형 정보가 포함됩니다.이를 통해 다른 프로그램 모듈과 상호 작용할 수 있습니다. 외부 참조로 공개되는 절차 및 데이터는 다른 모듈에서 호출 할 수있는 이름이 지정되어 있습니다. 마찬가지로, 모듈 외부의 정보에 대한 참조는 언급되지만 이름은 할당되지 않았습니다. 파일이 연결되면 이름없는 참조는 원래 정의 된 모듈에 주어진 이름을 할당합니다. 로컬 이름은 모듈 내에서만 언급 된 지침 및 데이터에 사용됩니다.
모든 링크 가능한 코드가 객체 파일로 저장되는 것은 아닙니다. 라이브러리는 객체 코드로 저장된 사전 컴파일 된 루틴의 컬렉션입니다. 이들은 객체 파일과 거의 같은 방식으로 생성되며 자주 절차를 저장하는 데 유용합니다. 링커가 다른 객체 파일 내에서 참조를 찾지 못하면 라이브러리 파일에서 자동으로 검색합니다. 프로그래밍 언어의 대부분의 구현표준 기능 라이브러리가 제공됩니다.
동적 링크를 통해 객체 파일을 여러 실행 프로그램에서 동시에 사용할 수 있습니다. 링크 될 때 객체 코드를 프로그램에 바인딩하는 대신 프로그램이로드 될 때 또는 프로 시저가 참조 될 때 런타임에 검색됩니다. Windows® 환경에서 이들은 동적 링크 라이브러리로 알려져 있으며 ".dll"확장자로 표시됩니다. UNIX®와 유사한 시스템은 종종이 유형의 파일을 동적 공유 객체 (DSO)라고합니다. 이 유형의 객체 파일은 특정 프로그램과 함께 사용하기 위해 구현 될 수 있으며 해당 프로그램 설치의 일부입니다.