首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >了解kbuild构建过程如何工作。

了解kbuild构建过程如何工作。
EN

Stack Overflow用户
提问于 2014-03-14 15:44:12
回答 1查看 635关注 0票数 3

我熟悉make和kbuild,以及构建系统是如何工作的。但是我很难理解目标是如何建立起来的!?

例如,在Kbuild中,如果您想在目录中生成一个对象文件,就会有一个makefile,其内容如下:

代码语言:javascript
复制
obj-$(CONFIG_FOO) += foo.o 

这将计算为obj-y/m并将foo.o添加到其中,我认为这个构建文件是使用submake调用的,然后主makefile将使用obj-yobj-m (取决于构建的方式/内容)生成所有对象目标,对吗?

My problem通常可以从主makefile/build文件传递给它的子生成(即export),但是obj-y变量是在许多地方定义的,那么在所有的submake调用中如何构造或跟踪它的值呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-17 19:17:29

在深入研究了Busybox的整个构建系统之后,我想我理解了它背后的逻辑,下面是我发现的:

  • 脚本目录中有共享的makefile(例如makefile.build、kbuild.include…)(等等)包含公共规则、构建配置和其他内容。
  • 这些共享的makefile是构建Kbuild的那些文件(例如那些通常保存代码的那些,比如obj-$(CONFIG_FOO) += foo.o)。
  • 如何工作:
    • 主makefile执行调用Makefile.build,并将要构建的文件夹(即生成built-in.o )的路径/dir作为命令行变量(obj)传递给Makefile.build
    • Makefile.build文件创建用于编译对象目标文件并将其链接到built-in.o的通用规则。
    • 然后,主makefile从子目录收集所有object-in.o并将它们链接到一起。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22409682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档