当前位置:首页>Linux>编译Linux源码用到的工具介绍

编译Linux源码用到的工具介绍

  • 2026-09-08 04:22:07
编译Linux源码用到的工具介绍

repo

Google 开发的 Git 仓库管理工具,用于简化包含多个 Git 仓库的大型项目(如 Android、某些 BSP)的同步和管理。通过 manifest 文件统一管理多个仓库的版本。

git

分布式版本控制系统,广泛用于源码管理。开发者用来克隆、提交、分支、合并代码。

ssh

Secure Shell 协议及客户端,用于远程登录和安全传输文件。常用于访问 Git 服务器或远程调试设备。

build-essential

一个“元包”,安装它会一次性包含 GCC/G++ 编译器、GNU make 等编译C/C++代码所必需的基础工具包。

make

自动化构建工具,通过读取 Makefile 文件来执行编译、链接等任务,是大多数开源项目的构建核心。

gcc/g++

GNU 编译器套件,分别用于编译 C 和 C++ 代码。在交叉编译环境中会使用带前缀的版本(如 aarch64-linux-gnu-gcc)。

libssl-dev

OpenSSL 库的开发包,包含 SSL/TLS 相关的头文件和静态库,用于编译需要加密功能的软件(如 HTTPS、SSH 客户端)。

liblz4-tool

LZ4 压缩算法的命令行工具和库,提供极速压缩和解压,常用于构建过程中的镜像压缩或实时数据传输。

expect

自动化交互式应用程序的工具,通过脚本模拟用户输入。可用于自动配置、测试或与命令行程序交互。

patchelf

修改 ELF 可执行文件的动态链接器和 RPATH/RUNPATH 的工具。在打包或调整二进制文件时常用,例如为交叉编译的二进制设置正确的库路径。

chrpath

类似 patchelf,专门用于修改 ELF 文件的 RPATH(运行时库搜索路径)。可用于移除或更改二进制中的硬编码路径。

gawk

GNU awk,文本处理工具。在构建脚本中常用于解析文件、生成配置等。

texinfo

GNU 文档系统,用于生成 Info 格式的帮助文档。编译某些 GNU 软件(如 gcc)时需要其生成文档。

diffstat

读取 diff 输出并生成统计信息(如修改了多少行、多少文件)。在查看补丁影响时有用。

binfmt-support

内核二进制格式支持模块,配合 qemu-user-static 可以在主机上直接运行其他架构的二进制程序(通过配置内核识别并调用解释器)。

qemu-user-static

QEMU 的用户模式模拟器,可以为不同架构(如 ARM、AArch64)执行用户空间程序。结合 binfmt-support,能在 x86 主机上透明运行目标架构的二进制文件(如构建过程中的测试或交叉编译辅助)。

live-build

Debian Live 项目的工具集,用于构建 Live 系统镜像(ISO、USB 镜像等)。在某些构建环境中可能用于生成基础根文件系统。

bison/flex

分别是 GNU 的解析器生成器(Yacc 替代)和词法分析器生成器(Lex 替代)。在编译需要解析语法的软件(如编译器、复杂配置工具)时必需。

fakeroot

伪造 root 权限的工具,允许普通用户在构建文件系统镜像时以 root 身份创建文件并设置权限,最终生成的镜像包含正确的属主和权限。

cmake

跨平台构建系统,使用 CMakeLists.txt 配置文件生成原生构建文件(如 Makefile)。越来越多的项目采用 CMake 构建。

gcc-multilib/g++-multilib

在 64 位主机上提供编译 32 位程序的库和头文件。如果构建系统需要生成 32 位目标或主机工具需要 32 位库,就需要安装。

unzip

解压 ZIP 文件的工具,常用于解压源码包或资源文件。

device-tree-compiler

设备树编译器(dtc),将设备树源文件(.dts)编译成二进制设备树(.dtb),用于 Linux 内核描述硬件。

python-pip

Python 包管理工具,用于安装 Python 软件包。许多构建脚本(如某些 BSP 的辅助工具)可能需要 Python 依赖。

ncurses-dev

NCurses 库的开发文件,用于编写终端界面程序(如 menuconfig 配置界面)。Buildroot 和内核的配置界面都依赖它。

pyelftools

Python 库,用于解析 ELF 文件。常用于分析二进制文件、提取符号信息或调试构建过程。

aarch64-linux-gnu-xxx

交叉编译工具链,用来生成嵌入式平台的Linux系统固件。

aarch64-buildroot-linux-gnu-

buildroot自己的交叉编译工具链。

curl

强大的命令行网络工具,支持多种协议。常用于通过URL下载文件、与服务器接口交互,或用来测试网络连接。

bc

一门命令行计算器语言,常出现在编译脚本中,用于处理数值计算。

gnupg

即 GnuPG(GNU隐私保护),用于加密、签名通信内容和文件,也可用来验证下载文件的数字签名,确保源码的完整性和真实性。

这些工具通常通过包管理器(如 apt)安装,是构建嵌入式 Linux 系统(尤其是基于 Buildroot 或 Yocto 的环境)的常见依赖。

最新文章

随机文章