erreur fatale: jni.h: Aucun fichier ou répertoire
Je suis en train de recréer ce tutoriel sur Windows:
Java Native Interface (JNI)
Lorsque j'essaie de compiler, je reçois le message d'erreur suivant:
fatal error: jni.h: No such file or directory
#include <jni.h>
compilation terminated.
Ma ligne de commande est:
gcc -Wl,--add-stdcall-alias -IC:\Program_Files\Java\jdk1.7.0_45\include -IC:\Program_Files\Java\jdk1.7.0_45\include\win32 -shared -o hello.dll HelloJNI.c
Je compile dans le dossier où tous les fichiers sont.
Je suis sûr que le fichier "jni.h" dans ce dossier se trouve:
C:\Program Files\Java\jdk1.7.0_45\include
Personne ne sait pourquoi l'instruction d'importation ne fonctionne pas?
Merci!
double possible de jni.h: no such file or directory
Votre déclaration, c'est que
x86_64-w64-mingw32-gcc -I"C:\Program Files\Java\jdk1.8.0_151\include" -I"C:\Program Files\Java\jdk1.8.0_151\include\win32" -shared-o hello.dll HelloJNI.c - a fonctionné pour moi
Votre déclaration, c'est que
jni.h
est dans C:\Program Files\Java\jdk1.7.0_45\include
cependant votre ligne de compilation, précise -IC:\Program_Files\Java\jdk1.7.0_45\include
. Est-ce que votre gcc convertir le trait de soulignement d'un espace pour vous?x86_64-w64-mingw32-gcc -I"C:\Program Files\Java\jdk1.8.0_151\include" -I"C:\Program Files\Java\jdk1.8.0_151\include\win32" -shared-o hello.dll HelloJNI.c - a fonctionné pour moi
OriginalL'auteur anmi | 2013-11-07
Vous devez vous connecter pour publier un commentaire.
Trait de soulignement n'est pas le même que l'espace. Si
jni.h
est vraiment dans le répertoire "program files", vous devez utiliser cette commande:Je n'ai pas encore "C:/Program les Fichiers de répertoire": D
Je parie que vous avez .... tout simplement parce que l'explorateur s'affiche comme le "C:\Programme" ou quelque chose ne signifie pas qu'il n'est pas'. Windows fait beaucoup de noir "magie". Je souhaite qu'ils seraient soit de feu le crétin qui a conçu tous les de la merde avec "Program Files" "Documents" etc., venir avec sane liens symboliques en NTFS et d'oublier tout et de tous "Magie" des chemins d'accès. Mieux encore, adopter un vrai système de fichiers, et de laisser le NTFS merde mourir. (L'enfer, ils ne sont pas sensibles à la casse!)
Vous semblez être en supposant que j'utilise Windows pour commencer.
Dans ce cas, vous êtes propre, bien sûr. Pour être sûr, tout le monde qui est en train de faire plus impliqués développement, comme l'OP, ne devrait pas le faire sur Windows.
OriginalL'auteur Joni
J'ai eu la réponse:
J'ai juste besoin d'utiliser des guillemets, remplacer la barre oblique inverse avec slash et remplacer le souligne avec des espaces.
La commande ressemble à ceci:
Merci à tous!!
Sous Linux c'est différent de Windows. Je n'ai jamais fait cela, mais peut-être essayer ce tutoriel. stackoverflow.com/questions/3950635/... j'espère que c'est utile
OriginalL'auteur anmi