Linux에서 ".o" 파일은 대상 파일을 의미하며 ".o"는 object의 약어입니다. Linux의 ".o" 파일은 Windows의 ".obj" 파일과 동일하며, 대상 파일에는 재배치 정보, 링크 또는 디버깅에 사용되는 프로그램 기호 테이블 및 기타 디버깅 정보와 같이 코드가 실행되는 동안 코드에서 사용되는 기계 코드 및 데이터가 포함됩니다.
이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.
.o는 윈도우에서 컴파일되는 obj 파일과 동일하며 일반적으로 개체 파일이라고 합니다.
오브젝트 파일(objectfile)은 개체 파일을 저장하는 컴퓨터 파일입니다. 타겟 코드입니다. 종종 "바이너리 생성"이라고 합니다. 목적 파일에는 기계어 코드(컴퓨터의 중앙 프로세서에 의해 직접 실행될 수 있음)와 실행 시 코드가 사용하는 데이터(예: 연결 또는 디버깅에 사용되는 프로그램 기호 테이블(변수 및 함수 이름)과 같은 재배치 정보)가 포함됩니다. , 추가 디버깅 정보를 포함합니다.
리눅스에는 3가지 유형의 객체 파일 형태가 있습니다:
실행 가능한 객체 파일, 재배치 가능한 객체 파일, 공유 객체 파일. 실행 파일, 객체 파일, 공유 라이브러리라는 상응하는 파일도 있습니다. 용어만 다르고 동일한 것을 지칭할 뿐입니다.
실행 가능한 개체 파일: 바이너리 코드와 데이터를 포함하며 메모리에서 직접 실행할 수 있습니다.
재배치 가능한 개체 파일: 실행 가능한 개체 파일을 만들기 위해 컴파일하는 동안 다른 재배치 가능한 개체 파일과 결합할 수 있는 바이너리 코드 및 데이터가 포함되어 있습니다.
공유 개체 파일: 메모리에 동적으로 로드하고 로드 또는 런타임 중에 연결할 수 있는 특별한 재배치 가능한 개체 파일입니다.
실제로 컴파일러와 어셈블러는 재배치 가능한 개체 파일(공유 개체 파일 포함)을 생성합니다. 링커는 실행 가능한 개체 파일을 생성합니다.
Linux의 개체 파일 파일 형식:
컴파일된 중간 파일(Windows의 경우 .obj, Linux의 경우 .o)로 인해 동적 링크 라이브러리 및 정적 링크 라이브러리(Windows 및 Linux의 경우 .lib.dll .a. so) 실행 파일 하위에는 실행 파일과 내용 및 구조가 유사하므로 일반적으로 실행 파일과 동일한 파일 형식으로 저장됩니다.
확장 지식:
.o 파일 생성:
gcc -c test.o test.c
.a 파일 생성:
ar cqs test.a test.o
.o는 Windows의 obj 파일과 동일하며, .c 또는 .cpp 파일은 .o 파일에 해당합니다.
.a는 정적 연결에 사용되는 여러 .o의 조합입니다. 즉, STATIC 모드에서는 여러 .a를 연결하여 exe 실행 파일을 생성할 수 있습니다.
.so는 동적 연결에 사용되는 공유 개체입니다. windows dll은 거의 동일합니다. 사용할 때만 로드하면 됩니다.
추천 학습:Linux 비디오 튜토리얼
위 내용은 리눅스의 o 파일은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!