Компиляция файла basic .c в 64-разрядную .dll с использованием visual c

#java #c #windows #visual-c

#java #c #Windows #visual-c

Вопрос:

Я использую Windows 7 (64-разрядную версию), пытаясь использовать Java-код для запуска файлов C / C , используя встроенный файл jni.h в jdk1.8.0_92. Я начал, используя приведенное здесь руководство. Я скачал инструменты сборки Visual C отсюда, я думаю. Используя командную строку перекрестной сборки Visual S 2015 x64 arm, я перешел в свою рабочую область и выполнил команды, как указано в руководстве. Для моего JAVA_HOME установлено значение
C:Program FilesJavajdk1.8.0_92 .

Команды, которые я запускал, состоят из

 cl -Ic:"C:Program FilesJavajdk1.8.0_92include" -Ic:"C:Program FilesJavajdk1.8.0_92includewin32" -LD HelloWorldImp.c -Fehello.dll
cl -Ic:"%JAVA_HOME%include" -Ic:"%JAVA_HOME%includewin32" -LD HelloWorldImp.c -Fehello.dll
  

Все это должно работать, но всегда появляется fatal error C1083: Cannot open include file: 'jni.h': No such file or directory . Команды могут генерировать .несмотря на это, dll является только 32-разрядной. Я видел бесчисленное множество других вопросов, похожих на этот, но ни один из них с ответами, которые сработали для меня. Чего мне не хватает?

Комментарии:

1. «Все это должно работать, но не работает» — не очень хорошее описание проблемы. Пожалуйста, предоставьте сообщения об ошибках и т. Д. Соответствующую информацию.

2. Извините, я забыл эту часть. Данная ошибка fatal error C1083: Cannot open include file: 'jni.h': No such file or directory . Команды могут генерировать . несмотря на это, dll является только 32-разрядной.

3. Лучше, если вы отредактируете вопрос с этой информацией. Кроме того, есть ли у вас файл jni.h в ожидаемом расположении в файловой системе?

4. У меня есть jni.h C:/Program Files/Java/jdk1.8.0_92/include/ , но его нет C:/Program Files/Java/jdk1.8.0_92/include/win32/ . В этом проблема?