


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.
#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
2) Download the source code of memcached
wget http://memcached.org/files/memcached-1.4.29.tar.gz
3) Unzip the source code
tar -zxvf memcached-1.4.29.tar.gz
4) Execute configure to generate a Makefile
./configure --prefix=/usr/local/memcached/
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
此时make会读取Makefile文件,将源码编译成二进制文件,并存放在当前目录下。
执行这一步之前可以先进行清理作业:
make clean && make uninstall
6)执行make install,将软件安装至指定目录
make install
此时二进制文件会被安装到先前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!

The five core components of the Linux operating system are: 1. Kernel, 2. System libraries, 3. System tools, 4. System services, 5. File system. These components work together to ensure the stable and efficient operation of the system, and together form a powerful and flexible operating system.

The five core elements of Linux are: 1. Kernel, 2. Command line interface, 3. File system, 4. Package management, 5. Community and open source. Together, these elements define the nature and functionality of Linux.

Linux user management and security can be achieved through the following steps: 1. Create users and groups, using commands such as sudouseradd-m-gdevelopers-s/bin/bashjohn. 2. Bulkly create users and set password policies, using the for loop and chpasswd commands. 3. Check and fix common errors, home directory and shell settings. 4. Implement best practices such as strong cryptographic policies, regular audits and the principle of minimum authority. 5. Optimize performance, use sudo and adjust PAM module configuration. Through these methods, users can be effectively managed and system security can be improved.

The core operations of Linux file system and process management include file system management and process control. 1) File system operations include creating, deleting, copying and moving files or directories, using commands such as mkdir, rmdir, cp and mv. 2) Process management involves starting, monitoring and killing processes, using commands such as ./my_script.sh&, top and kill.

Shell scripts are powerful tools for automated execution of commands in Linux systems. 1) The shell script executes commands line by line through the interpreter to process variable substitution and conditional judgment. 2) The basic usage includes backup operations, such as using the tar command to back up the directory. 3) Advanced usage involves the use of functions and case statements to manage services. 4) Debugging skills include using set-x to enable debugging mode and set-e to exit when the command fails. 5) Performance optimization is recommended to avoid subshells, use arrays and optimization loops.

Linux is a Unix-based multi-user, multi-tasking operating system that emphasizes simplicity, modularity and openness. Its core functions include: file system: organized in a tree structure, supports multiple file systems such as ext4, XFS, Btrfs, and use df-T to view file system types. Process management: View the process through the ps command, manage the process using PID, involving priority settings and signal processing. Network configuration: Flexible setting of IP addresses and managing network services, and use sudoipaddradd to configure IP. These features are applied in real-life operations through basic commands and advanced script automation, improving efficiency and reducing errors.

The methods to enter Linux maintenance mode include: 1. Edit the GRUB configuration file, add "single" or "1" parameters and update the GRUB configuration; 2. Edit the startup parameters in the GRUB menu, add "single" or "1". Exit maintenance mode only requires restarting the system. With these steps, you can quickly enter maintenance mode when needed and exit safely, ensuring system stability and security.

The core components of Linux include kernel, shell, file system, process management and memory management. 1) Kernel management system resources, 2) shell provides user interaction interface, 3) file system supports multiple formats, 4) Process management is implemented through system calls such as fork, and 5) memory management uses virtual memory technology.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Atom editor mac version download
The most popular open source editor

WebStorm Mac version
Useful JavaScript development tools

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft
