1

私はこのcppファイルを持っています:

//pkgnative_tries__native_NativeSystem.cpp
#include <pkgnative_tries__native_NativeSystem.h>
#include<iostream>
using namespace std;

extern "C"
JNIEXPORT void JNICALL Java_ClassName_MethodName
  (JNIEnv *env, jobject obj, jstring javaString)
{
    //Get the native string from javaString
    const char *nativeString = env->GetStringUTFChars(javaString, 0);
    cout << nativeString;

    env->ReleaseStringUTFChars(javaString, nativeString);
}

pkgnative_tries__native_NativeSystem.h:

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class pkgnative_tries__native_NativeSystem */

#ifndef _Included_pkgnative_tries__native_NativeSystem
#define _Included_pkgnative_tries__native_NativeSystem
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     pkgnative_tries__native_NativeSystem
 * Method:    println
 * Signature: (Ljava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_pkgnative_tries__1native_NativeSystem_println
  (JNIEnv *, jobject, jstring);

#ifdef __cplusplus
}
#endif
#endif

問題は、それを DLL にコンパイルしようとすると、次のように表示さg++れることです。

g++ -c -DBUILDING_EXAMPLE_DLL pkgnative_tries__native_NativeSystem.cpp

pkgnative_tries__native_NativeSystem.cpp:1:50: fatal error: pkgnative_tries__native_NativeSystem.h: No such file or directory
compilation terminated

誰かが理由を知っていますか?両方のファイルが同じディレクトリにあると確信しています

4

1 に答える 1

7

インクルードで山かっこを使用している場合 (例: #include <xyz>)、インクルードが実行されたディレクトリを検索しません。代わりに二重引用符を使用してください#include "xyz"

于 2013-09-16T16:24:28.257 に答える