Я пытаюсь собрать dll JShortcut для x64 на основе источника, найденного в Github: https://github.com/jimmc/jshortcut/
Я клонировал репозиторий, следуя инструкциям Make. Но у меня проблемы со следующим действием:
Вы можете собрать все, кроме DLL, на любой машине с Java и GNU make. Вы можете собрать DLL отдельно на машине Windows, запустив скрипт compile.bat в каталоге src / jni. Сделайте это только после выполнения команды «сделать все» в следующей последовательности:
Этот файл:
cl "-IC:/Program Files/Java/jdk1.8.0_162/include" "-IC:/Program Files/Java/jdk1.8.0_162/include/win32" -LD jshortcut.cpp -Fejshortcut_amd64.dll Advapi32.lib shell32.lib ole32.lib
И cl
не распознан. Я не знаю что делать Я использую Apache Netbeans 12 с поддержкой cpp. Поэтому я думаю, что я смогу сделать это из Netbeans, но я совсем не знаком с cpp.
[Редактировать]
Я заменил:
cl
на gcc
(после предложения FoggyDay) и - всех
.lib
их .dll
аналогами,
I получил:
gcc "-IC:/Program Files/Java/jdk1.8.0_162/include" "-IC:/Program Files/Java/jdk1.8.0_162/include/win32" -LD jshortcut.cpp -Fejshortcut_amd64.dll /cygdrive/c/Windows/System32/Advapi32.dll /cygdrive/c/Windows/System32/shell32.dll /cygdrive/c/Windows/System32/ole32.dll
Компиляция выдает мне следующую ошибку:
gdrive/z/Temp/ccdePcoW.o:jshortcut.cpp:(.xdata$_ZN7JNIEnv_9NewObjectEP7_jclassP10_jmethodIDz+0xc): undefined reference to `__gxx_personality_seh0'
gdrive/z/Temp/ccdePcoW.o:jshortcut.cpp:(.xdata$_ZN7JNIEnv_9NewObjectEP7_jclassP10_jmethodIDz+0xc): relocation truncated to fit: rva32 against undefined symbo
__gxx_personality_seh0'
r/lib/gcc/x86_64-pc-cygwin/4.8.2/../../../../x86_64-pc-cygwin/bin/ld: /cygdrive/z/Temp/ccdePcoW.o: bad reloc address 0x0 in section `.pdata$_ZN7JNIEnv_9NewOb
tEP7_jclassP10_jmethodIDz'
lect2: error: ld returned 1 exit status
В этом посте есть похожая ошибка , но у меня недостаточно знаний, чтобы применить это здесь. Файл jshortcut. cpp можно найти на GitHub .