Как собрать Android NDK .so без STL? - PullRequest
2 голосов
/ 24 сентября 2011

Я использую новейшую версию Android NDK r6b для создания общего объекта. Эта библиотека вообще не использует какой-либо STL, но в результате .so включает в себя множество STL-вещей, таких как std :: bad_alloc_what (void) и многие другие, что значительно увеличивает размер двоичного файла. Также сборки выпуска включают этот мусор. APP_STL нигде не определен, также NDK r5b создает небольшой двоичный файл только с используемыми функциями. Это ошибка R6B? Как я могу собрать с R6B без STL вещи?

Ответы [ 2 ]

1 голос
/ 25 сентября 2011

Кажется, что в NDK r6b есть ошибка, и он всегда создает библиотеки с поддержкой исключений, даже если явно указано -fno-exceptions.

Подробности см. В этом вопросе: Android NDK приводит к необоснованнымбольшие двоичные файлы, как оптимизировать .so размер?

0 голосов
/ 24 сентября 2011

Если вы используете, скажем, new, то вы неявно используете стандартную библиотеку для исключения std::bad_alloc.Если только вы не вызовете безбросочную версию new, в которой вместо этого будет использоваться std::nothrow.Если вы не используете стандартную библиотеку, она не будет связана.Просто убедитесь, что вы этого не сделаете, если это то, что вы хотите, или, возможно, просто перейти к C?

...