我正在尝试在bitbake(.bb)配方的do_compile阶段运行脚本。该项目建立在一个开放式的环境中。
1)脚本可以在openembedded环境之外成功运行。
2)在openembedded环境中运行时脚本失败,并出现以下错误:
bin/arm-linux-gnueabihf-ld.bfd -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -r -o
bin/arm-linux-gnueabihf-ld.bfd: unrecognized option '-Wl,-O1'
Openembedded环境正在添加这些额外的标志,-Wl,-O1 -Wl, - hash-style = gnu。
3)当脚本在openembedded项目之外运行时,这是输出:
bin/arm-linux-gnueabihf-ld.bfd -r -o
我正在寻找一种在编译阶段禁用或排除这些链接器,优化和其他标志的方法。我正在努力寻找解决方案而且我并不精通编码和编程的许多方面。发展。
我是否可以在脚本内部或bitbake(.bb)配方中调用语句,以便可以跳过或忽略这些标志?
或者有没有办法可以修改我的脚本来识别这些标志?
感谢您提供任何信息或帮助。如果需要,我很乐意提供更多信息。
答案 0 :(得分: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}"}