我正在尝试在 bitbake (.bb) 配方的
do_compile
阶段运行脚本。该项目是在开放嵌入式环境中构建的。
脚本可以在开放嵌入式环境之外成功运行。
脚本在开放嵌入式环境中运行时失败,并出现以下错误:
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
。
当脚本在 openembedded 项目外部运行时,这是输出:
bin/arm-linux-gnueabihf-ld.bfd -r -o
我正在寻找一种在编译阶段禁用或排除这些链接器、优化和其他标志的方法。我正在努力寻找解决方案,而且我不熟悉编码和开发的许多领域。
是否有一个我可以在脚本内部或 bitbake (.bb) 配方中调用的语句,以便可以跳过或忽略这些标志?
或者有什么方法可以修改我的脚本来识别这些标志?
感谢您提供任何信息或帮助。如果需要,我很乐意提供更多信息。
已解决:
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}"}