编译linux时,默认不会显示编译的命令,如果你要获得编译命令及其选项,可以在make命令后面加上宏定义:
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条评论
快来发表一下你的评论吧 !