交叉编译多层makefile

问题描述 投票:0回答:1

在交叉编译过程中,如何将参数从父makefile传递给子makefile?所有子模块可能不会在其自己的makefile中使用整个工具链,而仅使用其中的某些部分。父级如何在单独调用时将这些交叉编译器信息(例如CC ranlib,ar和其他)传递给子级makefile。另外我怎么知道我使用的是Cmake还是qmake。我知道这个领域。任何链接或代码段都可能有用。

makefile cross-compiling embedded-linux gnu-make toolchain
1个回答
0
投票

对于在makefile中设置的普通变量,例如FOO = bar,它们根本不会传递给子make。

如果将普通变量标记为已导出(通过export FOO),则它们将像其他任何环境变量一样传递给环境中的子make。请注意,子make makefile中的分配,例如FOO = baz,将优先于从环境获取的任何值。

对于在命令行上设置的变量,例如make FOO=bar,它们会通过特殊的MAKEFLAGS变量向下传递,并且它们[[will优先于子make中设置的任何变量。

但是,对于后者,请注意,当您调用子make时,您应该

always

使用$(MAKE)变量(或${MAKE},相同的东西),而never则使用裸机,例如make请参阅recursive use of make上的文档。
© www.soinside.com 2019 - 2024. All rights reserved.