Использование STL с Android NDK C ++ - PullRequest
25 голосов
/ 27 февраля 2012

Я пытаюсь использовать STL в файле Android NDK C ++. Я пытаюсь использовать карту, вектор и другие классы stl и не могу скомпилировать его, потому что он не находит файлы.

Заголовок моего класса начинается с:

#pragma once
#include <map>
#include <iostream>
#include <stdexcept>
#include <vector>
#include <set>
#include <list>
#include <algorithm>

и я получаю следующие сообщения об ошибках:

2>  In file included from jni/../../Classes/Assist/Test.cpp:1:
2>  jni/../../Classes/Assist/Test.h:2:15: error: map: No such file or directory
2>  jni/../../Classes/Assist/Test.h:3:20: error: iostream: No such file or directory
2>  jni/../../Classes/Assist/Test.h:4:21: error: stdexcept: No such file or directory
2>  jni/../../Classes/Assist/Test.h:5:18: error: vector: No such file or directory
2>  jni/../../Classes/Assist/Test.h:6:15: error: set: No such file or directory
2>  jni/../../Classes/Assist/Test.h:7:16: error: list: No such file or directory
2>  jni/../../Classes/Assist/Test.h:8:21: error: algorithm: No such file or directory
2>  In file included from jni/../../Classes/Assist/Test.cpp:1:

Я прочитал различные сообщения и попробовал "APP_STL: = stlport_static" и "APP_STL: = gnustl_static" в файле application.mk, но это не сработало.

Кто-нибудь знает, как мне заставить это работать?

Ответы [ 2 ]

43 голосов
/ 01 апреля 2012

У меня была такая же проблема, а потом понял, что мне нужно поставить: APP_STL: = stlport_static

в Application.mk, а не Android.mk ... doh

Тогда мне нужно было добавить: $ {ANDROID_NDK_ROOT} \ Sources \ CXX-СТЛ \ STLport \ STLport

включить пути в eclipse, чтобы в пользовательском интерфейсе не было жалоб на ошибки

2 голосов
/ 27 февраля 2012

Кажется, что ошибка была каким-то образом сломанным NDK. Я переустановил его (удалить, распаковать), и теперь он работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...