我正在开发一台Linux机器(debian)64位,并创建了一个涉及JNI的简单项目。该程序在Linux上运行良好,具有创建的Java项目和编译的.so
文件。现在的目标是将项目的C ++部分编译为.dll
而不是.so
,以使其在Windows机器上运行。
我阅读了一些论坛和一些像Article这样的文章,但所有这些文章都是关于从控制台进行编译而且还没有涉及必要的JNI包含。
我还从给定的文章中下载了交叉编译器,并试图让它在Netbeans中运行。因此,我在Netbeans中设置了另一个C/C++ Tool Collection
,并告诉它使用x86_64-w64-mingw32-gcc
编译器进行C和C ++。但是Netbeans在编译文件时给了我一些错误,告诉我找不到x86_64-w64-mingw32-gcc
编译器,我觉得这很随机,因为我是从文件选择器中选择的。你有没有做过这样的事情,从Linux上运行的Netbeans构建.ddl
?如果是的话,你是如何让它发挥作用的?
x86_64-w64-mingw32-gcc: not found
bproject/Makefile-Debug.mk:66: recipe for target 'build/Debug/GNU_1-Linux-x86/WrapperCpp.o' failed
make[2]: *** [build/Debug/GNU_1-Linux-x86/WrapperCpp.o] Error 127
make[2]: Leaving directory
nbproject/Makefile-Debug.mk:59: recipe for target '.build-conf' failed
make[1]: *** [.build-conf] Error 2
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed
make: *** [.build-impl] Error 2
@Edit:我现在更进一步:我安装了正确的mingw32工具:sudo apt-get install mingw32
。程序现在使用i586-mingw32msvc-g++
编译器进行编译而没有错误,但它仍然导致.so
而不是.dll
。我想这与make command
有关,但我还没有找到任何相关内容。