我熟悉make和kbuild,以及构建系统是如何工作的。但是我很难理解目标是如何建立起来的!?
例如,在Kbuild中,如果您想在目录中生成一个对象文件,就会有一个makefile,其内容如下:
obj-$(CONFIG_FOO) += foo.o 这将计算为obj-y/m并将foo.o添加到其中,我认为这个构建文件是使用submake调用的,然后主makefile将使用obj-y或obj-m (取决于构建的方式/内容)生成所有对象目标,对吗?
My problem通常可以从主makefile/build文件传递给它的子生成(即export),但是obj-y变量是在许多地方定义的,那么在所有的submake调用中如何构造或跟踪它的值呢?
发布于 2014-03-17 19:17:29
在深入研究了Busybox的整个构建系统之后,我想我理解了它背后的逻辑,下面是我发现的:
obj-$(CONFIG_FOO) += foo.o)。Makefile.build,并将要构建的文件夹(即生成built-in.o )的路径/dir作为命令行变量(obj)传递给Makefile.build。Makefile.build文件创建用于编译对象目标文件并将其链接到built-in.o的通用规则。object-in.o并将它们链接到一起。
https://stackoverflow.com/questions/22409682
复制相似问题