>  기사  >  운영 및 유지보수  >  linux o와 a에는 어떤 파일이 있습니까?

linux o와 a에는 어떤 파일이 있습니까?

青灯夜游
青灯夜游원래의
2022-11-10 19:16:312305검색

Linux에서 ".o" 파일은 대상 파일, 즉 대상 코드를 저장하는 컴퓨터 파일을 의미합니다. 대상 파일에는 기계어 코드(컴퓨터의 중앙 프로세서에서 직접 실행할 수 있음)와 코드가 실행 중일 때 사용되는 데이터도 포함됩니다. ".a" 파일은 정적 라이브러리 파일을 의미합니다. 즉, 호출할 함수나 프로세스가 실행 파일에 링크되어 실행 파일의 일부가 된다는 의미입니다. 동적 링크에 의해 호출된 함수 코드는 라이브러리에 복사되지 않습니다. 응용 프로그램의 실행 파일입니다. 그러나 호출된 함수에 대한 설명 정보를 추가합니다.

linux o와 a에는 어떤 파일이 있습니까?

이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.

o는 object이며, 이는 Windows에서 컴파일된 obj 파일과 동일하며, 일반적으로 대상 파일로 알려져 있습니다.

a는 archive이며, 이는 Windows VC에서 컴파일된 lib 파일과 동일하며, 일반적으로 정적 라이브러리 파일 ; 여러 .a를 연결하여 exe 실행 파일을 생성할 수 있습니다.

.o 파일은 링크 파일이고, .a 정적 라이브러리 파일은 .o 파일에 의해 생성되며 라이브러리 외부 프로그램 역할을 하여 기능과 인터페이스를 제공합니다. .o 파일을 생성합니다.

Linux의 o 파일(오브젝트 파일)

오브젝트 파일은 대상 코드를 저장하는 컴퓨터 파일로 흔히 바이너리 파일(바이너리)이라고 합니다. 목적 파일에는 기계어 코드(컴퓨터의 중앙 프로세서에 의해 직접 실행될 수 있음)와 실행 시 코드가 사용하는 데이터(예: 연결 또는 디버깅에 사용되는 프로그램 기호 테이블(변수 및 함수 이름)과 같은 재배치 정보)가 포함됩니다. , 추가 디버깅 정보를 포함합니다.

리눅스에는 3가지 유형의 객체 파일 형태가 있습니다:

실행 가능한 객체 파일, 재배치 가능한 객체 파일, 공유 객체 파일. 실행 파일, 객체 파일, 공유 라이브러리라는 상응하는 파일도 있습니다. 용어만 다르고 동일한 것을 지칭할 뿐입니다.

실행 가능한 개체 파일: 바이너리 코드와 데이터를 포함하며 메모리에서 직접 실행될 수 있습니다.

재배치 가능한 개체 파일: 실행 가능한 개체 파일을 만들기 위해 컴파일하는 동안 다른 재배치 가능한 개체 파일과 결합할 수 있는 바이너리 코드 및 데이터가 포함되어 있습니다.

공유 개체 파일: 메모리에 동적으로 로드하고 로드 또는 런타임 중에 연결할 수 있는 특별한 재배치 가능한 개체 파일입니다.

실제로 컴파일러와 어셈블러는 재배치 가능한 개체 파일(공유 개체 파일 포함)을 생성합니다. 링커는 실행 가능한 개체 파일을 생성합니다.

Linux의 개체 파일 파일 형식:

컴파일된 중간 파일(Windows의 경우 .obj, Linux의 경우 .o)로 인해 동적 링크 라이브러리 및 정적 링크 라이브러리(Windows 및 Linux의 경우 .lib.dll .a. so) 실행 파일 아래에는 실행 파일과 내용 및 구조가 유사하므로 일반적으로 실행 파일과 동일한 파일 형식으로 저장됩니다.

Linux의 a 파일(정적 라이브러리 파일)

.a 파일은 LINUX 시스템의 정적 링크 라이브러리 파일입니다.

정적 연결이란 호출할 함수나 프로세스를 실행 파일에 연결하여 실행 파일의 일부가 되는 것을 말합니다. 여러 프로그램이 동일한 함수를 호출하면 메모리에 해당 함수의 복사본이 여러 개 있게 되어 귀중한 메모리 리소스가 낭비됩니다. .so 파일은 공유 라이브러리 파일입니다(동적으로 링크됨). 동적 연결에 의해 호출된 함수 코드는 응용 프로그램의 실행 파일에 복사되지 않고 호출된 함수에 대한 설명 정보(종종 일부 재배치 정보)만 추가됩니다. 응용 프로그램이 로드될 때만 메모리가 실행되기 시작합니다. 운영 체제의 관리 하에 응용 프로그램과 해당 .so 사이에 링크 관계가 설정됩니다.

.a 파일은 여러 .o 파일의 조합입니다. .o 파일은 객체 파일이고 그 안에 포함된 내용은 01과 같은 기계 실행 가능 명령어입니다. 프로그램을 실행하려면 링크가 필요합니다. 링크는 여러 .o 파일을 실행 파일로 연결하는 것입니다. .

관련 추천: "Linux 비디오 튜토리얼"

위 내용은 linux o와 a에는 어떤 파일이 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.