我想知道如何从C ++调用java函数,在按照一些链接后我才知道我们需要在C ++文件中添加以下头文件
#include <jni.h>
但是当我在 Netbeans IDE 中的C ++文件中添加此文件时出现以下错误
fatal error: jni.h: No such file or directory
如何消除此错误,我只是JNI的初学者。
我查看了之前在stackoverflow上提出的问题,但未能解决问题。
这是我的comile输出:
"/C/MinGW/MSYS/1.0/bin./make.exe" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make.exe[1]: Entering directory `/c/Users/Simer/Documents/NetBeansProjects/JniDemo'
"/C/MinGW/MSYS/1.0/bin./make.exe" -f nbproject/Makefile-Debug.mk dist/Debug/MinGW-Windows/jnidemo.exe
make.exe[2]: Entering directory `/c/Users/Simer/Documents/NetBeansProjects/JniDemo'
mkdir -p build/Debug/MinGW-Windows
rm -f "build/Debug/MinGW-Windows/main.o.d"
g++ -c -g -MMD -MP -MF "build/Debug/MinGW-Windows/main.o.d" -o build/Debug/MinGW-Windows/main.o main.cpp
main.cpp:9:17: fatal error: jni.h: No such file or directory
#include <jni.h>
^
compilation terminated.
make.exe[2]: *** [build/Debug/MinGW-Windows/main.o] Error 1
make.exe[2]: Leaving directory `/c/Users/Simer/Documents/NetBeansProjects/JniDemo'
make.exe[1]: *** [.build-conf] Error 2
make.exe[1]: Leaving directory `/c/Users/Simer/Documents/NetBeansProjects/JniDemo'
make.exe": *** [.build-impl] Error 2
BUILD FAILED (exit value 2, total time: 2s)
答案 0 :(得分:1)
您正在使用MinGW进行编译而不包含Java标头,这就是为什么它抱怨未找到
尝试将此选项添加到编译命令-I"c:/path/to/jdk/include" -I"c:/path/to/jdk/include/win32" -D__int64="long long"
。
最后一个选项是避免由于Windows编译器使用__int64类型而gcc使用long long而导致的错误。
答案 1 :(得分:0)
它会详细介绍你应该做的所有事情。