Я пытаюсь портировать служебную программу C ++, которую я хочу запустить из оболочки Android ADB.Для этого я использую скрипт Android- NDK make-standalone-toolchain.sh и собираю с ним свою программу.К сожалению, когда я пытаюсь запустить его, я получаю эту ошибку:
reloc_library[1315]: 16304 cannot locate '_ZNKSs5c_strEv'...
CANNOT LINK EXECUTABLE
После некоторых исследований я обнаружил, что это означает, что функция c_str не существует в libstdc ++., Поэтому в NDK.Я также не смог найти символ в stlport.so, и фактически нашел его только в версии ./sources/cxx-stl/gnu-libstdc++/libs/ библиотек C ++.Эти библиотеки не включены в автономный набор инструментов, который я сделал, и я также не смог найти их на устройстве (устройство работает под управлением Honeycomb).
В тексте в NDK четко указано, что есть поддержка для всегоSTL, когда я использую stlport.Это то, что верно только в Ice Cream Sandwich?В libstlport.so или в libsupc ++. Поэтому на устройстве и в NDK не было подписи, подобной той, которая не была найдена.
Поэтому мой вопрос состоит из двух частей:
- Что-то мне не хватает в процессе сборки / настройки Android?Могу ли я настроить все по-другому, чтобы программа компилировалась без использования gnu-libstc ++, или, по крайней мере, потерпела неудачу с ошибкой компиляции / ссылки вместо того, чтобы не загружаться на устройство?
- При связывании с gnu-libstc ++это единственный способ, как я могу это сделать?Я думаю, что я могу управлять статически ссылками на него, но я бы предпочел этого не делать.
Как я могу добавить версию gnu-libstdc ++ к моей