我正在尝试使用JNI将.C代码与我的Java项目集成在一起。
在Visual Studio 2017中尝试使用vcvars32.bat生成.dll文件时,它给了我一条错误消息,提示:
“ C:\ Program Files \ Java \ jdk1.8.0_151 \ include \ jni.h(39):致命错误C1083:无法打开包含文件:’stdio.h’:没有这样的文件或目录”
我在我的C代码中删除了stdio.h库的包含内容,但没有帮助。
我的命令是:
“ cl -I” C:\ Program Files \ Java \ jdk1.8.0_151 \ include“ -I” C:\ Program Files \ Java \ jdk1.8.0_151 \ include \ win32“ -LD” Factorial.c“ -Fe” Factorial.dll“”
经过一段时间的搜索和失败后,我不得不通过VS13 vsvars32.bat生成它,请注意,vsvars不是生成32位dll的VS17的vcvars,因为我的平台是64位的,所以我必须安装并切换到32位JVM,问题是解决。