【问题标题】:Fatal Error: 'jni.h' file not found on Mac OSX 10.15.7致命错误:在 Mac OSX 10.15.7 上找不到“jni.h”文件
【发布时间】:2020-11-08 01:13:29
【问题描述】:

我尝试在 C 中运行带有一些库的旧 java 程序。在运行 make 命令时,我一直遇到这个错误,我认为它与 JAVA_HOME setting 有关

swig/main_6_comp_wrap.c:154:10: 

fatal error: jni.h: No such file or directory
#include <jni.h>
          ^~~~~~~

在多次尝试使用 Homebrew 安装 JDK、swig 和 gcc 后,都没有成功。我很确定 jni.h 文件位于 JAVA_HOME 的包含文件夹中。

JAVA_HOME   = /Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home/
JDK_HOME    = $(JAVA_HOME)
JRE_HOME    = $(JAVA_HOME)

SWIG        = swig
CC          = gcc
CFLAGS          = -O2 -fno-strict-aliasing -Wall -fno-common \
          -I/System/Library/Frameworks/JavaVM.framework/Headers/
BUILDLIB    = gcc -shared
LIB6        = java/classes/libC6_comp_backend.jnilib
LIB21       = java/classes/libC21_comp_backend.jnilib

系统:MacOS Catalina 10.15.7 痛饮:3.0.12 gcc: 10.2.0

【问题讨论】:

  • 您找到解决方案了吗?

标签: gcc makefile swig java-home


【解决方案1】:

您至少需要在 CFLAGS 中将 -I/System/Library/Frameworks/JavaVM.framework/Headers/ 替换为 -I$JAVA_HOME/include。您可能还需要添加-I$JAVA_HOME/include/darwin

您还需要更改用于链接 .jnilib 的路径

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-15
    • 1970-01-01
    • 1970-01-01
    • 2019-05-01
    • 2023-03-03
    相关资源
    最近更新 更多