在交叉编译过程中,如何将参数从父makefile传递给子makefile?所有子模块可能不会在其自己的makefile中使用整个工具链,而仅使用其中的某些部分。父级如何在单独调用时将这些交叉编译器信息(例如CC ranlib,ar和其他)传递给子级makefile。另外我怎么知道我使用的是Cmake还是qmake。我知道这个领域。任何链接或代码段都可能有用。
对于在makefile中设置的普通变量,例如FOO = bar
,它们根本不会传递给子make。
如果将普通变量标记为已导出(通过export FOO
),则它们将像其他任何环境变量一样传递给环境中的子make。请注意,子make makefile中的分配,例如FOO = baz
,将优先于从环境获取的任何值。
对于在命令行上设置的变量,例如make FOO=bar
,它们会通过特殊的MAKEFLAGS
变量向下传递,并且它们[[will优先于子make中设置的任何变量。
always
使用$(MAKE)
变量(或${MAKE}
,相同的东西),而never则使用裸机,例如make
。请参阅recursive use of make上的文档。