我正在尝试在Windows上重新创建本教程:Java Native Interface (JNI)
当我尝试编译它时,出现以下错误:
fatal error: jni.h: No such file or directory
#include <jni.h>
compilation terminated.
我的命令行是:
gcc -Wl,--add-stdcall-alias -IC:Program_FilesJavajdk1.7.0_45include -IC:Program_FilesJavajdk1.7.0_45includewin32 -shared -o hello.dll HelloJNI.c
我在所有文件所在的文件夹中编译。
我确定此文件夹中的文件"jni.h"位于:
C:Program FilesJavajdk1.7.0_45include
有谁知道为什么导入语句不起作用?
谢谢!
下划线与空格不同。如果jni.h
确实在"程序文件"目录中,则应使用以下命令:
gcc -wl,--add-stdcall-alias -I "C:\Program Files\Java\jdk1.7.0_45\include" -I "C:\Program Files\Java\jdk1.7.0_45\include\win32" -shared -o hello.dll HelloJNI.c
我得到了答案:
我只需要使用引号,用斜杠替换反斜杠,用空格替换下划线。
该命令如下所示:
gcc -wl,--add-stdcall-alias -I"C:/Program 文件/Java/jdk1.7.0_45/包含" -I"C:/Program Files/Java/jdk1.7.0_45/include/win32" -shared -o hello.dll HelloJNI.c
谢谢大家!!