en-tête: aucun fichier ou répertoire
J'ai ce fichier 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_tente__natif_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
Le problème est que lorsque j'essaie de compiler une DLL avec g++
, il dit:
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
Personne ne sait pourquoi? Je suis sûr que les deux fichiers sont dans le même répertoire
- Essayez
#include "pkgnative_tries__native_NativeSystem.h"
- Voir ceci: stackoverflow.com/questions/21593/...
- Cela a marché, merci!
- Ne le savais pas, merci!
Vous devez vous connecter pour publier un commentaire.
Lorsque vous êtes à l'aide de crochets à inclure (par exemple
#include <xyz>
), il ne ressemble pas dans le répertoire d'où l'include est fait. L'utilisation des guillemets au lieu de cela, par exemple,#include "xyz"
.