Home  >  Article  >  Operation and Maintenance  >  What files do linux o and a have?

What files do linux o and a have?

青灯夜游
青灯夜游Original
2022-11-10 19:16:312408browse

In Linux, the ".o" file refers to the target file, that is, the computer file that stores the target code; the target file contains the machine code (can be directly executed by the computer's central processor) and the code when it is running The data used, in addition to other debugging information. The ".a" file refers to a static library file, which means that the function or process to be called is linked to the executable file and becomes part of the executable file. The function code called by the dynamic link is not copied to the application's executable file. executable file, but adds the description information of the called function to it.

What files do linux o and a have?

#The operating environment of this tutorial: linux7.3 system, Dell G3 computer.

o is object, which is equivalent to the obj file compiled under windows, is commonly known as the target file

a is archive, which is equivalent to the lib file compiled under window's VC, is commonly known as a static library file; multiple .a can be linked to generate an exe executable file.

.o file is a link file, .a static library file is generated by .o file, and serves as a library external program to provide functions and interfaces. Generate .o file.

o file (object file) in Linux

The object file (objectfile) is a computer file that stores the object code. It is often called " Called "binaries". The object file contains machine code (which can be executed directly by the computer's central processor) and data used by the code when running, such as relocation information, such as the program symbol table (names of variables and functions) used for linking or debugging, in addition to Includes additional debugging information.

There are three types of target file forms under Linux:

Executable target files, relocatable target files and shared target files. There are also corresponding ones called executable files, object files, and shared libraries. They just have different terms and refer to the same thing.

Executable object file: contains binary code and data and can be executed directly in memory.

Relocatable target file: Contains binary code and data that can be combined with other relocatable target files at compile time to create an executable target file.

Shared object file: It is a special relocatable object file that can be dynamically loaded into memory and linked during loading or runtime.

In fact, compilers and assemblers generate relocatable object files (including shared object files). The linker generates an executable object file.

Object file file format under Linux:

Due to the compiled intermediate files (.obj under Windows and .o under Linux), dynamic link libraries and static The link library (.lib.dll under Windows and .a.so under Linux) is similar in content and structure to the executable file, so it is generally stored in the same file format as the executable file.

a file (static library file) in linux

.a file is a static link library file in the LINUX system.

The so-called static linking refers to linking the function or process to be called into the executable file and becoming part of the executable file. When multiple programs call the same function, there will be multiple copies of the function in the memory, thus wasting precious memory resources. .so files are shared library files (dynamically linked). The function code called by dynamic linking is not copied to the executable file of the application, but only the description information of the called function (often some relocation information) is added to it. Only when the application is loaded When the memory starts running, under the management of the operating system, a link relationship is established between the application and the corresponding .so.

.a file is a combination of multiple .o files. The .o file is an object file, and the content contained in it is machine-executable instructions such as 01. When the program is to be executed, it needs to be linked. Linking is to link multiple .o files into an executable file.

Related recommendations: "Linux Video Tutorial"

The above is the detailed content of What files do linux o and a have?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn