Man*_*ath 9 c c++ java linux gcc
gcc
在ubuntu上执行命令以生成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.
Run Code Online (Sandbox Code Playgroud)
我已经给出了生成.a文件的示例,但同样也出现了.so文件生成问题.
但是同样的gcc
命令适用于openjdk7/oraclejdk7.
这是什么问题?
Mat*_*ieu 17
我认为你没有添加包含jni_md.h
哪个平台依赖的包含目录.
尝试
$gcc -I/usr/lib/jvm/java-8-openjdk-amd64/include -I/usr/lib/jvm/java-8-openjdk-amd64/include/linux -c MainImpl1.c -o MainImpl1.o
Run Code Online (Sandbox Code Playgroud)
要么
$gcc -I/usr/lib/jvm/java-8-oracle/include -I/usr/lib/jvm/java-8-oracle/include/linux -c MainImpl1.c -o MainImpl1.o
Run Code Online (Sandbox Code Playgroud)
如果你不知道jni_md.h在哪里,请使用find
:
find / -name jni_md.h 2> /dev/null
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9235 次 |
最近记录: |