2012-02-26 2 views
24

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

Мои классы заголовка начинается с:

#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, но это не сработало.

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

+1

Мой совет должен придерживаться API Java. Честно говоря :( – paulsm4

+0

Возможно http://stackoverflow.com/questions/4893403/cant-include-c-headers-like-vector-in-android-ndk/4931170#4931170 и http://stackoverflow.com/questions/1650963/ustl-or-stlport-for-android поможет вам. – Yury

+0

Какая версия NDK вы используете? –

ответ

1

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

43

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

в Application.mk, не Android.mk ... DOH

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

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

+0

Извините, не работал для меня Одна и та же сборка отлично работает в Linux env, но не работает в Windows. Все еще ищет ответ. –

+0

его лучше поставить C++ _, чтобы включить libcpp_shared.so в apk –

Смежные вопросы