java - Makefile: fatal error :jni.h:没有这样的文件或目录

标签 java makefile raspberry-pi java-native-interface raspbian

我正在尝试make this library我按照 Maven 段落中的说明进行操作。但是,我失败了

make clean all

出现以下错误:

ObjectManager.c:35:17: fatal error: jni.h: No such file or directory
#include <jni.h>

所以,遵循 this question 的答案和 this question我正在尝试添加 jni.h 的位置文件到编译器标志。就我而言,该文件位于

/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/include

到目前为止我已经尝试过:

make -I/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/include clean all
make -I"${JAVA_HOME}/include" -I"${JAVA_HOME}/include/linux" clean all
export JAVA_INCLUDE_DIR=/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/include

简而言之,所提出的解决方案均无效,并且 makefile 仍然失败并出现相同的错误。怎么解决这个问题?

最佳答案

该库已具有正确的设置 [请参阅 CFLAGS]。来自 target/jni 中的 makefile:

IDIR =./include
CC=gcc
CFLAGS=-fPIC -Wall -g -I. -I$(IDIR) -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/linux -I/usr/lib/x86_64-linux-gnu/glib-2.0/include $(shell pkg-config --cflags $(PKGDEPS))

这很可能意味着您的 JAVA_HOME 设置不正确。

关于java - Makefile: fatal error :jni.h:没有这样的文件或目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52616097/

相关文章:

java - 我怎样才能从 if block 中出来?

java - JTextField 对齐错误。无法右对齐

linux - 在 Makefile 中我们使用 'prefix' 还是 'PREFIX'?

c -/usr/bin/ld : cannot find -lioutil in Makefile

python - 与长时间运行的 python 进程交互

node.js - 通过我的网络服务器与我的树莓派通信

opencv - 安装 OpenCV 时 Raspberry Pi 出现“GL_PERSPECTIVE_CORRECTION_HINT”错误

java - 创建自定义 jsdocs、java 文档、php 文档

python - 用于在 Debug模式下启动 Flask 的 makefile

java - 我如何解析 JVM 编译器中的类/字段?