Java 致命错误:jni#u md.h:没有这样的文件或目录“include”;jni医学博士;
在ubuntu上执行Java 致命错误:jni#u md.h:没有这样的文件或目录“include”;jni医学博士;,java,c++,c,linux,gcc,Java,C++,C,Linux,Gcc,在ubuntu上执行gcc命令为JNI生成.a或.so文件时,openjdk 8/oraclejdk8都出现以下错误 $gcc -I/usr/lib/jvm/java-8-openjdk-amd64/include -c MainImpl1.c -o MainImpl1.o In file included from MainImpl1.c:1:0: /usr/lib/jvm/java-8-openjdk-amd64/include/jni.h:45:20: fatal error: jni_
gcc
命令为JNI生成.a或.so文件时,openjdk 8/oraclejdk8都出现以下错误
$gcc -I/usr/lib/jvm/java-8-openjdk-amd64/include -c MainImpl1.c -o MainImpl1.o
In file included from MainImpl1.c:1:0:
/usr/lib/jvm/java-8-openjdk-amd64/include/jni.h:45:20: fatal error: jni_md.h: No such file or directory
#include "jni_md.h"
^
compilation terminated.
$gcc -I/usr/lib/jvm/java-8-oracle/include -c MainImpl1.c -o MainImpl1.o
In file included from MainImpl1.c:1:0:
/usr/lib/jvm/java-8-oracle/include/jni.h:45:20: fatal error: jni_md.h: No such file or directory
#include "jni_md.h"
^
compilation terminated.
我已经给出了生成.a文件的示例,但在.so文件生成中也发现了同样的问题
但同样的gcc
命令适用于openjdk7/oraclejdk7
这里有什么问题?我认为您没有添加包含
jni\u md.h
的include目录
试一试
或
如果您不知道jni_md.h在哪里,请使用find
:
find / -name jni_md.h 2> /dev/null
根据您的喜好,有时最好在找到它们之后,比如如果您正在构建其他人的项目,而不想篡改他们的make文件。
$gcc -I/usr/lib/jvm/java-8-oracle/include -I/usr/lib/jvm/java-8-oracle/include/linux -c MainImpl1.c -o MainImpl1.o
find / -name jni_md.h 2> /dev/null