- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我的应用程序的 makefile 向 CFLAGS 添加了一些内容,如下所示:
CFLAGS += -Wall -std=gnu99
然而,当我使用 OpenEmbedded BitBake 构建应用程序时,BitBake 显然忽略了 makefile 中的 CFLAGS 变量。
我发现在应用程序的配方中添加以下行会导致在通过 BitBake 构建期间使用标志:
EXTRA_OEMAKE += "CFLAGS='-Wall -std=gnu99'"
为什么 BitBake 会像这样忽略 makefile 中的 CFLAGS?此外,是否有比将上面的行添加到配方中更好的解决方案?
我更希望只使用 makefile 的 CFLAGS 来消除冗余。
最佳答案
默认情况下,bitbake.conf
包含 EXTRA_OEMAKE = "-e MAKEFLAGS="
,它在运行时传递给 make 命令(参见 base.bbclass
,它运行 ${MAKE} ${EXTRA_OEMAKE} "$@"
)。
make 的 -e
选项意味着环境变量会覆盖 makefile(来自 make --help
)。您还会注意到 bitbake.conf
在其他几个导出变量中设置了 export CFLAGS = "${TARGET_CFLAGS}"
,因此设置了 CFLAGS
在环境中。
这样做的原因是有一些编译器标志在交叉编译时很重要,一般来说,系统比 Makefile
更清楚要使用什么。正如您所发现的,这有时会失败。
您可以从 EXTRA_OEMAKE
中删除 -e
选项,但您冒着其他关键变量未正确设置的风险(例如,它会找到交叉编译器)。另一个更简洁的解决方案可能是添加到 TARGET_CFLAGS
,例如:
TARGET_CFLAGS += "-Wall -std=gnu99"
不幸的是,这里可能没有完美的解决方案,但希望这有助于理解它为什么会这样做。
关于c - 为什么 bitbake 会忽略我的 makefile 中的 CFLAGS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34934869/
我正在尝试查找“bb.utils.contains”的文档。 我在 pokey/bitbake/lib/utils.py 中找到了代码,但该代码的文档记录很差。 例如,它接受一个名为“d”的参数。什么
我创建了新问题,因为我觉得上一个问题已经得到解答,这属于一个新的地方。 我跑 bitbake core-image-minimal我收到以下错误: ERROR: systemd-1_232-r0 do
我正在为 openembedded-classic 编写 openembedded/bitbake 配方。我的食谱 RDEPENDS 依赖于 keyutils,一切似乎都有效,除了一件事:我想将一行附
我正在尝试通过 bitbake 为 arm7a 架构构建 uclibc,但我得到以下输出 user@ubuntu:~/stuff$ bitbake -b uclibc ERROR: Unable to
我正在尝试设置bitbake工具并尝试按照教程进行操作 https://www.yoctoproject.org/docs/1.8/bitbake-user-manual/bitbake-user-m
无法运行 bitbake 命令,如果这样做我会收到以下错误 joe@joe-O-E-M:~/BeagleBone/poky-dora-10.0.1/build$ bitbake core-image-
我在 openembedded 环境中运行 bitbake,我认为它缺少 99% 的配方文件。我在我的 conf 目录中编辑了 local.conf 文件,它有一行: BBFILES := "/bla
我试图在我现有的 OE 环境中包含从当前 yocto 版本升级的 autotools,而不升级我现有的所有软件包,所以我在我的 conf 文件中添加了 yocto 作为一个层: BBLAYERS +=
我正在使用 OpenEmbedded-Core 并创建了一个优先级为 6 的自定义层。几个月的开发已经过去了,现在我想将我的层的优先级增加到 8,因为来自另一个优先级为 7 的层的附加文件干扰了附加我
我是“bitbake”方式的初学者,我想知道在以下情况下会发生什么,当构建一个包含数千个包的项目时: 您对完整图像(所有包)进行位烘烤,它成功完成。 您对包进行了更改 - 一些源代码(我们称之为包“X
我是' BitBake '的初学者。我需要修改源代码并进行构建。我发现源位于git commit id作为名称的目录中的build/tmp/work/下。我想重建源代码。所以我给了bitbake -c
谢谢阅读, 我正在一个项目中工作,我们在其中创建了一个 secimage(linux yocto 图像)。 我不熟悉那里使用的所有工具,也不熟悉要使用的技术术语。所以这个问题可能真的很愚蠢,但我无法通
元层提供配方: meta/recipes-graphics/x11-common/xserver-nodm-init.bb meta-oe 层提供配方: meta-oe/recipes-graphic
在一个项目中,我们使用项目yocto,并且我们的metas从一些远程git存储库中获取源代码。 问题在于这些存储库仅在某些特定情况/特定时间可以访问。 因此,我需要一种方法(在可用时)来获取存储库,以
我有一个 tarball src.tar.gz,它的内容被解压到 src/中,还有一个用这个命令生成的源补丁: $ diff -Nurp src/ src_mod/ > my.patch 补丁头以这三
我最近开始使用 Bitbake 来构建 Yocto。每次构建时,它都会占用更多空间,目前我的磁盘空间不足。图像不会被覆盖。为每个构建创建一组带有时间戳的新文件。我已经从 build/tmp/deplo
假设我有一个只添加一个脚本文件的简单食谱: LICENSE = "CLOSED" SRC_URI += "file://test.sh" S = "${WORKDIR}" do_install ()
我想使用 .bbappend 删除“inherit”。 例如, 在 component.bb 中: inherit something 在component.bbappend中: "remove_in
我会保持简短。我收到了一个 yocto 存储库,并被要求审核它以获取构建使用的许可证。我的最终目标是: 列出发行版使用的所有许可证(即发行版构建的所有工具和实用程序使用的许可证) 获取许可证文件的副本
我最近在运行 build-image 时开始看到这个问题编译一个 Yocto 镜像,它会在完成构建 60% 左右后锁定整个 Linux 机器,并且在记录它时,你会看到机器好像被重置了。 dmesg 日
我是一名优秀的程序员,十分优秀!