编译linux,通常只需要运行 在嵌入式开发中,经常需要交叉编译,要做交叉编译的话,需要在 表示编译过程使用的交叉编译链为 当然也可以直接修改 Linux内核编译过程会产生很多的文件,包括目标文件、临时文件等等,默认情况下,编译生成的文件会存放在内核源码目录。 当你使用 因此我们可以在父目录创建一个存放编译文件的目录,如 这样在编译Linux内核时,所有编译产生的文件,都会放在build-kernel目录,如果build-kernel目录不存在,也会自动创建。这样可以实现Linux内核源码与编译产生的文件分离。 编译linux时,默认不会显示编译的命令,如果你要获得编译命令及其选项,可以在make命令后面加上宏定义: 如果希望编译系统告诉你为何某个目标文件需要重新编译,则: 最后分享我常用的内核编译脚本 其中,
tip1:交叉编译选项
make menuconfig配置要编译的模块,然后运行make。linux默认是做本地编译,也就是编译位本机使用的内核。make命令后加上宏定义,如交叉编译为arm目标:make ARCH=arm CROSS_COMPILE=arm-linux-
ARCH=arm:表示目标CPU为ARM架构CROSS_COMPILE=arm-linux-:arm-linuxMakefile中的ARCH和CROSS_COMPILE宏定义,以此实现同样的效果。但是不建议直接修改Makefile。
Tip2:源码与目标文件分离
git status显示自己对内核代码的修改时也会把这些临时文件显示出来,而且提交还必须一个文件一个文件地指定,相当麻烦。build-kernel,然后再make 命令后面加上宏定义:make O=../build-kernel
Tip3:获得编译命令及选项
make V=1
make V=2
内核编译脚本
mk.sh,给大家参考:#!/bin/sh
export ARCH=arm
export PATH=~/toolchain/arm_glibc/host/bin:$PATH
export CROSS_COMPILE=arm-linux-gnu-
#make O=../bd defconfig
make O=../bd menuconfig -j32
make O=../bd dtbs
#反汇编
$(CROSS_COMPILE)objdump -d ../bd/vmlinux > ../image/vmlinux_dump.txt
#生成uImage
../ubd/tools/mkimage -A arm -T kernel -C none -O linux -a 0x80200000 -e 0x80200000 -n "debug kernel" -d ../bd/Image ../image/uImage
make O=../bd defconfig只有在第一次编译内核的才使用,第一次编译过后,将这句注释,后面都通过make menuconfig修改内核配置。objdump反汇编对大多数人来说可能用不上,一般在内核移植、启动分析时比较有用,但由于工作需要,我通常都会把反汇编加上。
0
0
相关文章
Linuxroot权限管理规范_root安全实践
Linux perf 工具分析系统性能问题
Linux云平台迁移风险_迁移评估与验证
Linux 磁盘 IO 性能问题定位方法
Linux升级软件要注意_版本升级风险
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门AI工具
相关专题
git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。
578
2023.07.06
Git是一个强大的版本控制系统,它提供了很多功能帮助开发人员有效地管理和控制代码的变更,本专题为大家提供git 撤销提交的commit相关的各种文章内容,供大家免费下载体验。
275
2023.07.24
git提交错误撤回的方法:git reset head^:撤回最后一次提交,恢复到提交前状态。git revert head:创建新提交,内容与之前提交相反。git reset :使用提交的 sha-1 哈希撤回指定提交。交互式舞台区:标记要撤回的特定更改,然后提交,排除已撤回更改。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。
567
2024.04.09
要对比两个版本的 git 文件,请使用 git diff 命令:git diff 比较工作树和暂存区之间的差异。git diff 比较两个提交或标签之间的差异。git diff 输出显示差异块,其中 + 表示添加的行,- 表示删除的行, 表示修改的行。可使用 gitkraken、meld、beyond compare 等可视化工具更直观地查看差异。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。
532
2024.04.09
磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。
1542
2023.06.21
find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关
300
2023.06.30
本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。
4
2026.03.05
热门下载
相关下载
精品课程


