我正在使用 ndk21 附带的 clang++ 编译我的 C++ 代码。我已设置编译器标志 -fno-unwind-tables 和 -fno-asynchronous-unwind-tables,但展开表中的条目数不会减少。我还通过设置相反的 -funwind-tables 和 -fasynchronous-unwind-tables 进行了检查,但它也没有增加。设置 -fno-exceptions 确实会稍微减少条目数量,这让我认为我正确地传递了标志。有谁知道为什么会出现这种情况?
我的测试程序非常简单,只有 5 个函数,所有函数都将字符串附加到字符串。这是展开表中的最小条目数吗?我正在尝试减少二进制大小。
通常原因是您依赖于其他一些库do有放松的桌子。 C++ stdlib 肯定是用它们构建的,因此如果您使用 libc++_static.a,它们将被添加到您的库中。由于该代码已经编译,您的编译器标志不会对其产生任何影响:)
我还应该注意到,即使您没有使用异常,您也可能出于其他原因想要展开表。例如,您使用的崩溃处理程序可能依赖于它们。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)