如何将全局 CXX 编译器标志添加到 yocto 构建

Wal*_*orf 6 compiler-flags yocto

这对我来说似乎很明显,但我找不到任何解决方案。假设我想添加或更改适用于所有 yocto 配方的编译器标志/选项。可以在某处添加全局标志而不更改配方?

Ash*_*van 5

您可以在poky/meta/conf/bitbake.conf 中为 Yocto 构建添加全局编译器选项。添加选项后,使用命令bitbake -e检查 bitbake 环境

cat poky/meta/conf/bitbake.conf

...
...
##################################################################
# Build flags and options.
##################################################################

export BUILD_CPPFLAGS = "-isystem${STAGING_INCDIR_NATIVE}"
BUILDSDK_CPPFLAGS = "-isystem${STAGING_INCDIR}"
export CPPFLAGS = "${TARGET_CPPFLAGS}"

export BUILD_CFLAGS = "${BUILD_CPPFLAGS} ${BUILD_OPTIMIZATION}"
BUILDSDK_CFLAGS = "${BUILDSDK_CPPFLAGS} ${BUILD_OPTIMIZATION}"
export CFLAGS = "${TARGET_CFLAGS}"
export TARGET_CFLAGS = "${TARGET_CPPFLAGS} ${SELECTED_OPTIMIZATION}"

export BUILD_CXXFLAGS = "${BUILD_CFLAGS}"
export CXXFLAGS = "${TARGET_CXXFLAGS}"
export TARGET_CXXFLAGS = "${TARGET_CFLAGS}"
Run Code Online (Sandbox Code Playgroud)

  • **不**建议修改“poky/...”下的任何文件,因为如果更新了 poky 层,所有修改都会丢失。请改用自己的图层。 (2认同)

小智 5

您可以将其添加到机器配置文件中。

机器配置文件位于板支持层中,位于conf/machine下。它名为 $MACHINE.conf,其中 MACHINE 在 local.conf 中定义。

这是 poky 1.4 中的内容。你的可能位于 poky 之外的一层。

> ls -1 meta-yocto-bsp/conf/machine/
atom-pc.conf
beagleboard.conf
mpc8315e-rdb.conf
routerstationpro.conf
> ls -1 meta/conf/machine/
include
qemuarm.conf
qemumips.conf
qemuppc.conf
qemux86-64.conf
qemux86.conf
Run Code Online (Sandbox Code Playgroud)

识别您的板配置文件后,在末尾添加一行以添加到您的 C 标志:

TARGET_CFLAGS += " <my flags> "
Run Code Online (Sandbox Code Playgroud)