如何在没有STL的情况下构建Android NDK .so?

时间:2011-09-24 19:46:39

标签: android stl android-ndk

我正在使用最新的Android NDK r6b来构建我的共享对象。这个库根本不使用任何类型的STL,但结果.so包括许多STL的东西,如std :: bad_alloc_what(void)等等,这大大增加了二进制文件的大小。发布版本也包含此垃圾。 APP_STL没有在任何地方定义,NDK r5b也只生成带有使用函数的小二进制文件。这是r6b的错误吗?如何在不使用STL的情况下使用r6b进行构建?

2 个答案:

答案 0 :(得分:1)

似乎NDK r6b中存在一个错误,它总是构建具有异常支持的库,即使明确指定了-fno-exceptions

有关详细信息,请参阅此问题:Android NDK produce unreasonable big binaries, how to optimize .so size?

答案 1 :(得分:0)

如果您正在使用new,那么您隐式使用标准库来处理std::bad_alloc异常。除非你调用new的无抛出版本,而是使用std::nothrow。如果您不使用标准库,则不会链接。只要确保你没有,如果这是你想要的,或者只是转移到C?