我使用的是最新的Android NDK R6B建立我的共享对象。此库不使用任何类型的STL的所有,但生成的.so包括许多STL类的东西的std :: bad_alloc_what(无效)等等,这大大增加了二进制的大小。发布版本也包含这个垃圾。 APP_STL在任何地方都没有定义,NDK r5b也只生成使用函数的小二进制。它是r6b的bug吗?我如何用r6b构建没有STL的东西?如何在没有STL的情况下构建Android NDK .so?
回答
似乎存在NDK R6B一个错误,它总是建立图书馆与异常的支持,即使没有明确指定-fno-exceptions
。
详见这个问题:Android NDK produce unreasonable big binaries, how to optimize .so size?
我想你是对的。看来,我应该继续使用'旧'r5 NDK。 Спасибо。 – trashkalmar
如果您正在使用,也就是说,new
那么你就含蓄地使用了std::bad_alloc
例外的标准库。除非你调用new
无掷版本,这将改用std::nothrow
。如果你不使用标准库,那么它将不会被链接。只要确保你没有,如果这就是你想要的,或者只是移动到C?
我我确定我不在任何地方使用STL,因为正如我所说的,r5b在没有任何STL引用的情况下构建库。 – trashkalmar
@trashkalmar:那么你甚至不直接或间接地在整个代码中使用'new'?任何机会r6b正在建设与例外启用和r5b不是? –
当然,我多次使用'new'。我怎样才能弄清楚r6b是否会导致异常?以及如何明确禁用它们?据我所知,Android运行时不支持C++代码中的异常。 – trashkalmar
- 1. 默认情况下,Android NDK工具链二进制文件是否构建有或没有例外情况?
- 2. 在不创建项目的情况下构建NDK源码
- 3. 如何在没有客户机密的情况下构建GoogleCredential?
- 4. 如何在没有构建的情况下运行Angular 2(cli)?
- 5. 如何在没有构建文件的情况下执行Ant
- 6. 如何在没有CMake的情况下构建yaml-cpp
- 7. 如何在没有STL的情况下在C++中创建边(v1,v2)列表
- 8. 如何在没有手机应用程序的情况下构建Android?
- 9. 如何在不构建所有Android的情况下构建AOSP应用程序?
- 10. Xamarin:使用NDK构建的.so
- 11. 在没有Visual Studio的情况下构建RIA服务项目
- 12. 在没有Web服务器的情况下构建Web服务
- 13. 如何在没有层次结构的情况下遵循xpath?
- 14. 如何在没有结构的情况下部署Django项目
- 15. 如何在没有RSA/RAD的情况下构建WAS 6.1特定的EAR?
- 16. 是否可以在没有Java的情况下构建Android应用程序?
- 17. 在没有Eclipse的情况下创建Android签名APK。 。
- 18. 在没有Java的情况下创建Android应用程序
- 19. android如何在没有年份的情况下存储日期?
- 20. 如何在没有singleTop的情况下使用Android SearchView?
- 21. 如何在没有webview的情况下显示HTML内容android
- 22. 在没有生根的情况下在Android上使用libusb
- 23. 如何在没有onCliclkListener的情况下在Android中创建警报对话
- 24. 如何在没有文档的情况下构建gnuradio(来自源代码)
- 25. 如何在没有sudo的情况下构建Mongodb C驱动程序
- 26. Zend Framework - 如何在没有模块的情况下创建层次结构?
- 27. 如何在没有IDE依赖的情况下构建/测试Scala?
- 28. 如何在没有版本的情况下使用maven构建项目
- 29. 如何在没有网络的情况下构建rails服务器
- 30. 如何在没有odex的情况下构建CM系统应用程序?
这不是一个错误,但我们不得不接受这样的事实:http://code.google.com/p/android/issues/detail?id=19881 –