我正在尝试使用JNI从C ++程序调用Java程序。供应商已经安装了一些电话设备,它只使用C ++。我想编写一个Screen Popper,但不想在C ++中这样做,因此希望通过电话调用事件和数据到Java例程来处理。我正在使用Netbeans,因为它使编码更容易(通常!)。我之前没有做过C ++,这就是为什么我要逃避Java ASAP!
我在这里按照说明操作:http://www.ibm.com/developerworks/java/tutorials/j-jni/j-jni.html 这似乎阐述了如何从C ++调用Java例程但我无法编译它。我在这个网站上得到了很多帮助,但现在我很难过了。
我添加了' -D__int64 = long long'切换到项目的编译器选项,并将Java库添加到Application include路径。我使用代码帮助重新解释了代码。但现在我离开了这个错误:
make[1]: Entering directory '/cygdrive/f/Javadev/Sample2'
"/usr/bin/make" -f nbproject/Makefile-Debug.mk dist/Debug/Cygwin_4.x-Windows/sample2.exe
make[2]: Entering directory '/cygdrive/f/Javadev/Sample2'
mkdir -p build/Debug/Cygwin_4.x-Windows
rm -f build/Debug/Cygwin_4.x-Windows/main.o.d
g++.exe -D__int64=long long -c -g -I/cygdrive/C/Program\ Files\ \(x86\)/Java/jdk1.6.0_33/include/win32 -I/cygdrive/C/Program\ Files\ \(x86\)/Java/jdk1.6.0_33/include -MMD -MP -MF build/Debug/Cygwin_4.x-Windows/main.o.d -o build/Debug/Cygwin_4.x-Windows/main.o main.cpp
nbproject/Makefile-Debug.mk:65: recipe for target 'build/Debug/Cygwin_4.x-Windows/main.o' failed
make[2]: Leaving directory '/cygdrive/f/Javadev/Sample2'
nbproject/Makefile-Debug.mk:58: recipe for target '.build-conf' failed
make[1]: Leaving directory '/cygdrive/f/Javadev/Sample2'
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed
g++: error: long: No such file or directory
make[2]: *** [build/Debug/Cygwin_4.x-Windows/main.o] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
所有源文件都在F:\ javadev下,Sample2是C ++,Sample3是Java。我需要在Cygwin中加入其他东西吗?似乎有一个问题是长期'但这只发生在交换机中,如果没有它,它会更加灾难性地失败,并说__int64没有类型。