Skip to main content

객체 파일이란 무엇입니까?

객체 파일은 컴파일러라는 프로그램에 의해 생성 된 컴퓨터 파일이며 지침뿐만 아니라 데이터를 포함합니다.컴파일러는 프로그래밍 언어 소스 코드를 객체 코드로 알려진 중간 기계 읽을 수있는 양식으로 변환합니다.소규모 프로그램은 단일 객체 파일로 컴파일 될 수 있으며, 큰 프로그램은 일반적으로 관련 기능의 여러 파일로 컴파일됩니다.이러한 개별 객체 파일은 링커로 결합되며 운영 체제 별 정보는 실행 가능한 프로그램을 형성하기 위해 추가됩니다.

공통적으로 객체 파일은 .obj 파일 확장자로 표시됩니다.그러나 이러한 파일에는 여러 가지 형식이 있습니다.가장 일반적인 것은 Intel Reg입니다.windows reg 및 unix reg의 이전 가능한 객체 모듈 형식 (OMF) 및 공통 개체 파일 형식 (COFF);시스템 V. 많은 INIX 시스템, 실행 파일 및 링크 가능한 형식 (ELF)은 Coff를 대체하기 위해 왔습니다.

형식에 관계없이 객체 파일에는 일반적으로 다른 프로그램 모듈과 상호 작용할 수있는 세 가지 유형 정보가 포함되어 있습니다.외부 참조로 공개되는 절차 및 데이터는 다른 모듈에서 호출 할 수있는 이름이 지정되어 있습니다.마찬가지로, 모듈 외부의 정보에 대한 참조는 언급되지만 이름은 할당되지 않았습니다.파일이 연결되면 이름없는 참조는 원래 정의 된 모듈에 주어진 이름을 할당합니다.로컬 이름은 모듈 내에서만 언급 된 지침 및 데이터에 사용됩니다.

모든 링크 가능한 코드가 객체 파일로 저장되는 것은 아닙니다.라이브러리는 객체 코드로 저장된 사전 컴파일 된 루틴의 컬렉션입니다.이들은 객체 파일과 거의 같은 방식으로 생성되며 자주 절차를 저장하는 데 유용합니다.링커가 다른 객체 파일 내에서 참조를 찾지 못하면 라이브러리 파일에서 자동으로 검색합니다.프로그래밍 언어의 대부분의 구현에는 표준 기능 라이브러리가 제공됩니다.

동적 링크를 통해 객체 파일은 여러 실행 프로그램에서 동시에 사용할 수 있습니다.링크 될 때 객체 코드를 프로그램에 바인딩하는 대신 프로그램이로드 될 때 또는 프로 시저가 참조 될 때 런타임에 검색됩니다.Windows Reg에서;환경, 이들은 동적 링크 라이브러리로 알려져 있으며 .dll 확장으로 표시됩니다.Unix Reg와 유사한 시스템;종종이 유형의 파일을 동적 공유 객체 (DSO)라고합니다.이 유형의 객체 파일은 특정 프로그램과 함께 사용하기 위해 구현 될 수 있으며 해당 프로그램 설치의 일부가 될 것입니다.