1.先在顶层目录文件的Makefile中查找vmlinux,可以查到作为目标时的vmlinux:
![](https://i-blog.csdnimg.cn/blog_migrate/a9373d89204cc110e4c1fc362fc448b0.png)
按顺序查看vmlinux的依赖内容,首先是scripts/link-vmlinux.sh,可以在这个汇编文件看到vmlinux的编译要素:
![](https://i-blog.csdnimg.cn/blog_migrate/5b47c098e7296c3a0a7dd57497a8e39b.png)
第二个是变量vmlinux-deps,其内容如下:
![](https://i-blog.csdnimg.cn/blog_migrate/7d0132df7a3447bd3ee0f5fe7f3a0db6.png)
第三个参数是call if_changed;link-vmlinux其调用命令cmd_link-vmlinux,负责对vmlinux进行链接
![](https://i-blog.csdnimg.cn/blog_migrate/181dc4b7ac42e94ee289bc149e26dda8.png)
现在需要知道vmlinux后面第二个参数的KBUILD_VMLINUX_OBJS与KBUILD_VMLINUX_LIBS的内容
![](https://i-blog.csdnimg.cn/blog_migrate/a4723701656f7080dd50ed2489c02076.png)
通过打印只能看到KBUILD_VMLINUX_OBJS的内容
KBUILD_VMLINUX_LIBS时链接所用的库。主要需要了解KBUILD_VMLINUX_OBJS中的静态库
![](https://i-blog.csdnimg.cn/blog_migrate/126fd1f350c64a0e61d9fc0924f1c1ec.png)