2012-03-15 8 views
7

एंड्रॉइड-एनएनडी-आर 7 स्थापित किया है, और .cpp फ़ाइल संकलित करने की कोशिश कर रहा है।एंड्रॉइड में iostream शामिल करने में असमर्थ क्यों?

#include <iostream> 

using namespace std; 

int main (int argc, char ** argv) 
{ 

    cout <<"Hello World.."<<endl; 

} 

आदेश के बाद निष्पादित: JNI फ़ोल्डर में हो गया, और

#ndk-build 

गॉट निष्पादित त्रुटि निम्नलिखित:

/home/jelari/Desktop/androidDevelopment/android-ndk-r7/DCF/jni/test1.cpp:1:20: error: iostream: No such file or directory 
/home/jelari/Desktop/androidDevelopment/android-ndk-r7/DCF/jni/test1.cpp: In function 'int main(int, char**)': 
/home/jelari/Desktop/androidDevelopment/android-ndk-r7/DCF/jni/test1.cpp:8: error: 'cout' was not declared in this scope 
/home/jelari/Desktop/androidDevelopment/android-ndk-r7/DCF/jni/test1.cpp:8: error: 'endl' was not declared in this scope 
make: *** [/home/jelari/Desktop/androidDevelopment/android-ndk-r7/DCF/obj/local/armeabi/objs/test1/test1.o] Error 1 

क्या मैं गलत कर रहा हूँ?

मेरे Android.mk फ़ाइल लगता है:

# A simple test for the minimal standard C++ library 
# 

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 
LOCAL_MODULE := test1 
LOCAL_SRC_FILES := test1.cpp 
include $(BUILD_EXECUTABLE) 

और Application.mk फ़ाइल की तरह दिखता है:

# Build both ARMv5TE and ARMv7-A machine code. 
APP_ABI := armeabi armeabi-v7a 

कृपया गलती का कहना है?

+0

@Nick, शर्म की बात है में इस जोड़ें। shoul डी ने ऐसा किया है, बल्कि टाइपिंग किया है। माफ़ कीजिये!!। – Whoami

+0

आह हा हा हा हा - हमने सब कुछ किया है! – Nick

उत्तर

11

बस इतना जवाब इतने पर यहां आसानी से पहुंचा जा सकता है, यहाँ यह है:

By default, the C++ standard library is very minimal.

You need to set APP_STL in your Application.mk file.

I use:

APP_STL := gnustl_static

but you could have used system, stlport_static, stlport_shared, or gnustl_static.

It's documented under $NDK/docs/CPLUSPLUS-SUPPORT.html, and it's a little hidden, because the $NDK/documentation.html index file doesn't list it.

http://groups.google.com/group/android-ndk/browse_thread/thread/983c436239d48704?pli=1

+0

यदि आप एनडीके समर्थन के साथ नई ग्रेडल बिल्ड सिस्टम का उपयोग करते हैं तो क्या करें? – Roel

+0

@ रोएल न्यू ग्रेडल बिल्ड सिस्टम ** एप्लिकेशन.एमके ** का भी उपयोग नहीं करता है! –

3

एक और तरीका है से उद्धरित कि आप application.mk और android.mk नहीं है फ़ाइल,

मुझ पर :(अपने build.gradle

ndk{ 
    moduleName = your_module_name 
    stl = "c++_static" 
} 
संबंधित मुद्दे