如何覆盖 bit-bake 配方中单个包的优化级别?
How to override optimization level for a single package in bit-bake recipe?
默认情况下,所有 Yocto 项目都带有 -O2 优化级别
如何使用 -O0 覆盖单个包?
来自bitbake.conf:
export BUILD_CFLAGS = "${BUILD_CPPFLAGS} ${BUILD_OPTIMIZATION}"
FULL_OPTIMIZATION = "-O2 -pipe ${DEBUG_FLAGS}"
DEBUG_OPTIMIZATION = "-O -fno-omit-frame-pointer ${DEBUG_FLAGS} -pipe"
SELECTED_OPTIMIZATION = "${@d.getVar(['FULL_OPTIMIZATION', 'DEBUG_OPTIMIZATION'][d.getVar('DEBUG_BUILD') == '1'])}"
因此,如果您想将其切换为 -O0
以进行调试,只需在配方中设置 DEBUG_BUILD="1"
即可。如果配方因错误代码而被 -O2
破坏,请适当地覆盖 FULL_OPTIMISATION
。
以上回答建议
DEBUG_BUILD=1
对我不起作用。
我不得不使用
DEBUG_FLAGS="-O0"
默认情况下,所有 Yocto 项目都带有 -O2 优化级别
如何使用 -O0 覆盖单个包?
来自bitbake.conf:
export BUILD_CFLAGS = "${BUILD_CPPFLAGS} ${BUILD_OPTIMIZATION}"
FULL_OPTIMIZATION = "-O2 -pipe ${DEBUG_FLAGS}"
DEBUG_OPTIMIZATION = "-O -fno-omit-frame-pointer ${DEBUG_FLAGS} -pipe"
SELECTED_OPTIMIZATION = "${@d.getVar(['FULL_OPTIMIZATION', 'DEBUG_OPTIMIZATION'][d.getVar('DEBUG_BUILD') == '1'])}"
因此,如果您想将其切换为 -O0
以进行调试,只需在配方中设置 DEBUG_BUILD="1"
即可。如果配方因错误代码而被 -O2
破坏,请适当地覆盖 FULL_OPTIMISATION
。
以上回答建议
DEBUG_BUILD=1
对我不起作用。 我不得不使用
DEBUG_FLAGS="-O0"