Home > Operation and Maintenance > Linux Operation and Maintenance > Why does Linux need to compile source code?

Why does Linux need to compile source code?

青灯夜游
Release: 2023-03-17 10:21:25
Original
2659 people have browsed it

Reason: 1. There are many versions of Linux, but each version uses different software or kernel versions, and the environment that the binary package depends on may not necessarily be able to run normally, so most software directly provides source code for processing. Compile and install. 2. Easy to customize to meet different needs. 3. Convenient for operation and maintenance and developer maintenance; source code can be packaged as binary, but packaging this software will require costly extra work, including maintenance, so if it is source code, the software manufacturer will maintain it directly.

Why does Linux need to compile source code?

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

Why does Linux need to compile source code?

Generally speaking, our software installation methods include yum (rpm) and source code compilation. So why do we need source code? Compile and install some software? There are several reasons for choosing source code to compile and install software:

  • To meet different operating platforms, we have many Linux versions, but each version uses different software or kernel versions, and The environment our binary packages rely on may not necessarily run normally, so most software provides source code directly!

  • Easy to customize to meet different needs. Many times the software we need can be customized. I can install whatever I need. Most binary codes can be installed with one click. , so the degree of freedom is not high!

  • It is convenient for operation and maintenance and developer maintenance. Our source code can be packaged as binary, but packaging this software will require a costly extra work, including maintenance, so if If it is source code, the software manufacturer will maintain it directly, but if it is binary, it is usually provided by the Linux publisher.

linux compilation source code tutorial

Almost all software on Linux is GPL authorized, so almost all software will provide source code.

To be executed on Linux, a software must be a binary file. Therefore, when we get the software source code, we need to compile it into a binary file before it can be run on Linux.

1. Software compilation process

It takes two steps to compile the source code into a binary file that can be run by Linux:

  • Use the gcc compiler to compile the source code into an object file

  • Use the gcc compiler again to link the object file into a binary file

This process seems simple, but in fact it is not. The source code of a software is often encapsulated in multiple source files. In addition, these files have intricate dependencies, and compilation needs to be carried out in strict accordance with the specified order, which undoubtedly increases the difficulty of compilation. Fortunately, the make command can help us simplify the compilation process.

The entire compilation process is condensed in the Makefile file (telling the make command how to compile and link the program). When the make command is executed, make will go to the current directory to find the Makefile file, and based on the file It is required to complete the entire compilation process.

The Makefile file is generated by the configure command. When executing the configure command, configure will dynamically generate a Makefile suitable for this system based on the current system environment for use by the make command.

2. Linux source code installation steps

  • Get the source code
    Download the source code of the software to /usr/ local/ and unzip it.

  • View the INSTALL and README files
    After decompression, view the INSTALL and README files. These two files introduce the installation method and precautions of this software in detail.

  • Create a Makefile
    Execute the configure command to generate a Makefile.

  • Compile
    Execute the make clean;make command to compile the source code into a binary file.
    PS: The make clean command is used to clear the target files generated by the last compilation. This step is optional, but in order to ensure the success of compilation, it is better to add it. Prevent compilation failure due to residual object files in the software.

  • Installation
    Execute the make install command to install the binary file compiled in the previous step into the specified directory.

3. Installation demonstration

1) Enter /usr/local/ and create the memcached directory :

cd /usr/local/
mkdir memcached
Copy after login

2) Download the source code of memcached

wget http://memcached.org/files/memcached-1.4.29.tar.gz
Copy after login

3) Unzip the source code

tar -zxvf memcached-1.4.29.tar.gz
Copy after login

4) Execute configure to generate a Makefile

./configure --prefix=/usr/local/memcached/
Copy after login

At this time, a Makefile will be generated in the current directory.

Note: The –prefix parameter specifies the software installation directory. When the make install command is executed, the software will be installed in this path. If this parameter is not specified and prefix is ​​not specified, the executable file will be placed in /usr/local/bin by default, and the library file will be placed in /usr/local/lib by default. , the configuration file is placed in /usr/local/etc by default. Other resource files are placed in /usr/local/share.

5) Execute make, read the instructions from the Makefile, and compile the source code

make
Copy after login

此时make会读取Makefile文件,将源码编译成二进制文件,并存放在当前目录下。

执行这一步之前可以先进行清理作业:

make clean && make uninstall
Copy after login

6)执行make install,将软件安装至指定目录

make install
Copy after login

此时二进制文件会被安装到先前configure prefix参数设置的路径中去。
安装完成!

4、cmake命令(了解)

cmake就是一个与make同级别的编译工具,只不过它依靠的不是Makefile作为编译规则,而是根据CMakeLists.txt来编译的。
CMake是一个比make更高级的编译配置工具,它可以根据不同平台、不同的编译器,通过编写CMakeLists.txt,可以控制生成的Makefile,从而控制编译过程。

CMake自动生成的Makefile不仅可以通过make命令构建项目生成目标文件,还支持安装(make install)、测试安装的程序是否能正确执行(make test,或者ctest)、生成当前平台的安装包(make package)、生成源码包(make package_source)、产生Dashboard显示数据并上传等高级功能,只要在CMakeLists.txt中简单配置,就可以完成很多复杂的功能,包括写测试用例。
如果有嵌套目录,子目录下可以有自己的CMakeLists.txt。

相关推荐:《Linux视频教程

The above is the detailed content of Why does Linux need to compile source code?. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template