私はアンドロイドndkで遊んでいます。cygwin (最新バージョン) で Window Vista を使用しています。携帯電話で hello world jni サンプルをコンパイルして起動しました。それは働いています。コードは (.cpp ファイルです):
#include <string.h>
#include <jni.h>
extern "C" {
JNIEXPORT jstring JNICALL Java_org_android_helloworld_HelloworldActivity_invokeNativeFunction(JNIEnv* env, jobject javaThis);
};
jstring Java_org_android_helloworld_HelloworldActivity_invokeNativeFunction(JNIEnv* env, jobject javaThis)
{
return env->NewStringUTF("Hello from native code!");
}
少し遊んでみるために、いくつかの変更を追加したかったのです。
#include <algorithm>
そして、上記の関数で、次を追加しました:
int a;
a=std::min<int>(10, 5);
しかし、コンパイラは、ファイル「アルゴリズム」が見つからず、min() が std の一部ではないことを示しています。
少し検索した後、Android ndk には、必要なすべての std ファイルを含む gnu-libstdc++ ディレクトリがあることがわかりました。NDK ドキュメントを読んで、usint std::* はコードを変更しなくても機能するはずであることを知りました (適切なヘッダー ファイルが含まれている場合)。しかし、cygwin の gcc は必要なファイルを見つけることができないようです。
Android ndk アプリの .cpp ファイル内で std と stl を使用できるようにするために行う手順は何ですか?