我试图通过Yocto来构建程序,但是遇到了可执行文件较大的问题。经过一番调查,我发现我的程序是用GCC标志-g构建的(产生调试信息)。事实证明,此标志已在文件bitbake.conf中设置:
DEBUG_FLAGS ?= "-g -feliminate-unused-debug-types ${DEBUG_PREFIX_MAP}"
# Disabled until the option works properly -feliminate-dwarf2-dups
FULL_OPTIMIZATION = "-O2 -pipe ${DEBUG_FLAGS}"
DEBUG_OPTIMIZATION = "-O -fno-omit-frame-pointer ${DEBUG_FLAGS} -pipe"
SELECTED_OPTIMIZATION = "${@d.getVar(oe.utils.vartrue('DEBUG_BUILD', 'DEBUG_OPTIMIZATION', 'FULL_OPTIMIZATION', d))}"
因此,在每个构建中都使用标志-g,没有定义或没有差异DEBUG_BUILD
变量。我发现的唯一解决方法是在程序配方中设置${DEBUG_FLAGS} = " "
。
所以,我的问题是:有没有更好的解决方案?并且,Yocto中的所有软件包都带有调试标志是正常的吗?似乎是一种超限解决方案,尤其是对于嵌入式设备。
答案 0 :(得分:0)
请参阅@Parthiban评论。本质上没有问题。