-fno-unwind-tables 和 -fno-async-unwind-tables 不起作用 NDK clang

-fno-unwind-tables and -fno-asynchronous-unwind-tables does not work NDK clang++

本文关键字:NDK clang 不起作用 -fno-async-unwind-tables -fno-unwind-tables      更新时间:2023-10-16

我正在使用 ndk21 附带的 clang++ 编译我的C++代码。我已经设置了编译器标志 -fno-unwind-tables 和 -fno-async-unwind-tables,但 unwind 表中的条目数并没有减少。我还通过设置相反的 -funwind 表和 -fasync-unwind-table 进行了检查,但它也没有增加。设置 -FNO-exceptions 确实会略微减少条目数量,这让我认为我正确地传递了标志。有谁知道为什么会这样?

我的测试程序非常简单,只有 5 个函数,所有函数都附加字符串到字符串。是展开表中的最小条目数吗?我正在尝试减小二进制大小。

通常,原因是您依赖于其他一些具有展开表的库。C++ stdlib 肯定是用它们构建的,所以如果你使用的是 libc++_static.a,它们将被添加到你的库中。由于该代码已编译,因此编译器标志不会对其产生任何影响:)

我还应该指出,即使您不使用异常,您也可能希望展开表还有其他原因。例如,您使用的崩溃处理程序可能依赖于它们。