在 BitBake do_compile 期间排除/忽略/禁用 gcc 编译器标志

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

我正在尝试在 bitbake (.bb) 配方的

do_compile
阶段运行脚本。该项目是在开放嵌入式环境中构建的。

  1. 脚本可以在开放嵌入式环境之外成功运行。

  2. 脚本在开放嵌入式环境中运行时失败,并出现以下错误:

    bin/arm-linux-gnueabihf-ld.bfd -Wl,-O1 -Wl,--hash-style=gnu -Wl,--按需-r -o bin/arm-linux-gnueabihf-ld.bfd:无法识别的选项“-Wl,-O1”

开放嵌入式环境正在添加这些额外的标志,

-Wl,-O1 -Wl,--hash-style=gnu

  1. 当脚本在 openembedded 项目外部运行时,这是输出:

    bin/arm-linux-gnueabihf-ld.bfd -r -o

我正在寻找一种在编译阶段禁用或排除这些链接器、优化和其他标志的方法。我正在努力寻找解决方案,而且我不熟悉编码和开发的许多领域。

是否有一个我可以在脚本内部或 bitbake (.bb) 配方中调用的语句,以便可以跳过或忽略这些标志?

或者有什么方法可以修改我的脚本来识别这些标志?

感谢您提供任何信息或帮助。如果需要,我很乐意提供更多信息。

compilation bitbake openembedded compiler-flags
1个回答
0
投票

已解决:

do_compile() {
    unset LDFLAGS
    unset CFLAGS
    unset CPPFLAGS
    # remove CC so it is defined here
    sed -e '/^CC\t=/d' -i ${S}/config.mk
    oe_runmake all 

    # fix tools/env Makefile usage
    sed -e 's/$(CROSS_COMPILE)gcc/$(CC)/g' \
        -e 's/ln -s /ln -sf /g' \
        -e '/CFLAGS :=/ aCFLAGS += -DMEM_SIZE_${@d.getVar('KERNEL_BOOTLOADER_MEM_SIZE',1) or '128'}MB' \
        -i ${S}/tools/env/Makefile
    oe_runmake env CC="${CC}"
    oe_runmake fw_env_lib CC="${CC}"}
© www.soinside.com 2019 - 2024. All rights reserved.