【发布时间】:2016-04-28 08:30:40
【问题描述】:
我的应用程序的 makefile 向 CFLAGS 添加了如下内容:
CFLAGS += -Wall -std=gnu99
但是,当我使用 OpenEmbedded BitBake 构建应用程序时,BitBake 显然忽略了 makefile 中的 CFLAGS 变量。
我发现在应用程序的配方中添加以下行会导致在通过 BitBake 构建期间使用标志:
EXTRA_OEMAKE += "CFLAGS='-Wall -std=gnu99'"
为什么 BitBake 会像这样忽略 makefile 中的 CFLAGS?另外,有没有比将上面的行添加到配方更好的解决方案?
我希望只使用 makefile 的 CFLAGS 来消除冗余。
【问题讨论】:
-
bitbake 是否使用了makefile?它在运行
make时是否在命令行上显式覆盖CFLAGS? -
这令人困惑:bitbake 使用
recipe文件,而不是makefile。你为什么使用bitbake?如果你有 makefile,请使用 gnu make。 -
@EtanReisner Bitbake 确实使用了 makefile,但据我所知,它在运行 make 时并没有在命令行上显式覆盖 CFLAGS。
-
@chqrlie 配方文件向 BitBake 描述了如何构建应用程序。正在使用生成文件,但由于某种原因,特别是 CFLAGS 被忽略了。我必须使用 BitBake,因为它是基于 OpenEmbedded 的构建系统的一部分,我用于嵌入式系统的交叉编译。
-
很可能bitbake将自己的
CFLAGS值传递给make,使make忽略Makefile中设置的值,例如makes命令线。您可以使用某种详细模式来验证这一点。
标签: c linux makefile bitbake openembedded