Это странная настройка здесь. Я скомпилировал пользовательский NDK с GCC 4.7 (для хоста chroot armhf Debian). В тестировании он прекрасно компилирует и запускает обычные двоичные файлы c и c ++ на Android. При попытке скомпилировать тестовую разделяемую библиотеку с C ++, используя:
arm-linux-androideabi-g++ -fPIC -shared test.cpp -lstdc++ -o test.so
Я получаю множество ошибок компоновщика _staticinitialization_destruction
а также _dso_handle
будучи не связанным.
у меня есть оба libstdc++.a
а также libstdc++.so
доступно в папке lib под arm-linux-androideabi
каталог. Что здесь происходит? Вряд ли есть какая-либо информация об автономной компиляции Android C ++.
редактировать
Кажется, что __dso_handle не определен для части iostream GNU STL. Я нашел ответ из поста Linux 2005 года. По-прежнему проблема в 2012 году, кажется: О лол.
Задача ещё не решена.
Других решений пока нет …