У меня проблема с компиляции файла CPP с использованием NDK-сборки инструмента (Windows 7 с Cygwin) появляется Ошибка при попытке компиляции файла CPP с #include:Android NDK iostream-сборки: Нет такого файла или каталога
jni/native.cpp:5:20: error: iostream: No such file or directory
Вот мой каст файл:
#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)
У меня есть файл iostream в папке android ndk (NDK_ROOT \ sources \ cxx-stl \ gnu-libstdC++ \ include), но я не знаю, как сообщить компилятору искать iotream (и другие стандартные файлы заголовков) в этой папке ,
Кажется, что мне не хватает одной или нескольких переменных окружения или некоторых флагов компилятора.
Я получил эту строку в Android.mk, вы можете видеть это в моем посте. –
Вы должны поместить эту строку в файл APPLICATION.mk, а не ANDROID.mk –
Да! APPLICATION.mk имеет другую роль, чем ANDROID.mk, и он должен быть создан в корне jni (-> projet_dir/jni/Application.mk). (спасибо Martins) – Gaetan