即速应用微信小程序官网,2017网站seo如何做,手机网站设计小程序,wordpress无法加载图片大小一. Linux内核源码的make编译 使用命令“make xxx_defconfig”配置好 Linux 内核以后就可以使用“make”或者“make all” 命令进行编译。 二. Linux内核源码的make过程 使用命令“ make xxx_defconfig ”配置好 Linux 内核以后就可以使用“ make ”或者“ make all ” 命…一. Linux内核源码的make编译 使用命令“make xxx_defconfig”配置好 Linux 内核以后就可以使用“make”或者“make all” 命令进行编译。 二. Linux内核源码的make过程 使用命令“ make xxx_defconfig ”配置好 Linux 内核以后就可以使用“ make ”或者“ make all ” 命令进行编译。顶层 Makefile 有如下代码 125 PHONY : _all
126 _all:
......
192 PHONY all
193 ifeq ($(KBUILD_EXTMOD),)
194 _all: all
195 else
196 _all: modules
197 endif
......
608 all: vmlinux 第 126 行 _all 是默认目标如果使用命令“ make ”编译 Linux 的话此目标就会被匹配。 第 193 行如果 KBUILD_EXTMOD 为空的话 194 行的代码成立 默认目标 _all 依赖 all 。 第 608 行目标 all 依赖 vmlinux所以接下来的重点就是 vmlinux 顶层 Makefile 中有如下代码 905 export KBUILD_VMLINUX_INIT : $(head-y) $(init-y)
906 export KBUILD_VMLINUX_MAIN : $(core-y) $(libs-y) $(drivers-y)
$(net-y)
907 export KBUILD_LDS : arch/$(SRCARCH)/kernel/vmlinux.lds
908 export LDFLAGS_vmlinux
909 # used by scripts/pacmage/Makefile
910 export KBUILD_ALLDIRS : $(sort $(filter-out arch/%,$(vmlinuxalldirs)) arch Documentation include samples scripts tools virt)
911
912 vmlinux-deps : $(KBUILD_LDS) $(KBUILD_VMLINUX_INIT) $(KBUILD_VMLINUX_MAIN)
913
914 # Final link of vmlinux
915 cmd_link-vmlinux $(CONFIG_SHELL) $ $(LD) $(LDFLAGS)
$(LDFLAGS_vmlinux)
916 quiet_cmd_link-vmlinux LINK $
917
918 # Include targets which we want to
919 # execute if the rest of the kernel build went well.
920 vmlinux: scripts/link-vmlinux.sh $(vmlinux-deps) FORCE
921 ifdef CONFIG_HEADERS_CHECK
922 $(Q)$(MAKE) -f $(srctree)/Makefile headers_check
923 endif
924 ifdef CONFIG_SAMPLES
925 $(Q)$(MAKE) $(build)samples
926 endif
927 ifdef CONFIG_BUILD_DOCSRC
928 $(Q)$(MAKE) $(build)Documentation
929 endif
930 ifdef CONFIG_GDB_SCRIPTS
931 $(Q)ln -fsn cd $(srctree) /bin/pwd/scripts/gdb/vmlinuxgdb.py
932 endif
933 $(call if_changed,link-vmlinux) 上面的代码可以看出 第 920 行可以看出目标 vmlinux 依赖 scripts/link-vmlinux.sh、 $(vmlinux-deps)、 FORCE 。 第912 行定义了 vmlinux-deps 值为 vmlinux-deps $(KBUILD_LDS) $(KBUILD_VMLINUX_INIT) $(KBUILD_VMLINUX_MAIN) 第 905 行 KBUILD_VMLINUX_INIT $(head-y) $(init-y) 。 第 906 行 KBUILD_VMLINUX_MAIN $(core-y) $(libs-y) $(drivers-y) $(net-y) 。 第 907 行 KBUILD_LDS arch/$(SRCARCH)/kernel/vmlinux.lds 其中 SRCARCHarm 因此 KBUILD_LDS arch/arm/kernel/vmlinux.lds 综上所述vmlinux 的依赖为scripts/link-vmlinux.sh、$(head-y) 、$(init-y)、$(core-y) 、 $(libs-y) 、$(drivers-y) 、$(net-y)、arch/arm/kernel/vmlinux.lds 和 FORCE。 第 933 行的命令用于链接生成 vmlinux 。 下一篇重点来看一下 $(head-y) 、 $(init-y) 、 $(core-y) 、 $(libs-y) 、 $(drivers-y) 和 $(net-y) 这六个变量的值。