【发布时间】:2012-02-26 04:13:16
【问题描述】:
我在使用 ndk-build 工具编译 cpp 文件时遇到问题(带有 cygwin 的 windows 7) 当我尝试使用 #include 编译 cpp 文件时出现错误:
jni/native.cpp:5:20: error: iostream: No such file or directory
这是我的 cpp 文件:
#include <jni.h>
#include <string.h>
#include <stdio.h>
#include <android/log.h>
#include <iostream>
#define DEBUG_TAG "NDK_SampleActivity"
#define LOG_TAG "hellojni"
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO,LOG_TAG,__VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)
#ifdef __cplusplus
extern "C" {
#endif
void Java_com_test_ndk_SampleActivity_helloLog(JNIEnv* env, jobject thisobj, jstring logThis)
{
jboolean isCopy;
const char * szLogThis = env->GetStringUTFChars(logThis, &isCopy);
__android_log_print(ANDROID_LOG_DEBUG, DEBUG_TAG, "NDK:LC: [%s]", szLogThis);
env->ReleaseStringUTFChars(logThis, szLogThis);
}
#ifdef __cplusplus
}
#endif
这是我的 Android.mk 文件:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
APP_STL:=stlport_static
LOCAL_LDLIBS := -llog
LOCAL_MODULE := swingbyte-android
LOCAL_SRC_FILES := native.cpp
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include-all
include $(BUILD_SHARED_LIBRARY)
我在 android ndk 文件夹 (NDK_ROOT\sources\cxx-stl\gnu-libstdc++\include) 中有 iostream 文件,但我不知道如何告诉编译器在其中查找 iotream(和其他标准头文件)那个文件夹。
似乎我缺少一个或几个环境变量,或者一些编译器标志。
【问题讨论】:
标签: android android-ndk cygwin iostream