У меня есть программа на Java, которая использует некоторые вызовы собственных функций для ускорения кодирования видео. Для этого требуется DLL, которую я напишу на C (сейчас у меня только тестовая).
Когда я компилирую DLL с cl /I "java-path/include" /"java-path/include/win32" -DL -ML Main.c -FeTest.dll
, она компилируется, но я получаю 32-битную DLL. Проведя некоторые исследования в Интернете, я обнаружил, что вместо этого мне понадобится 64-битная DLL.
После дополнительных исследований я нашел этот пост , который является единственным для C (даже C ++ было трудно найти), но это работает, только если вы пишете / строите с помощью Visual Studio 2010. I Я использую Elipse для Java, CLion для C и компилирую через «Командную строку разработчика». так что это не работает для меня. Как мне перекомпилировать как 64-битную DLL?
РЕДАКТИРОВАТЬ: я использую cl.exe
, который поставляется с Visual Studio 2017
ОБНОВЛЕНИЕ: Я обнаружил 64-битный cl.exe
в C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.13.26128\bin\Hostx64\x64\cl.exe
, однако при его запуске я получаю сообщение об ошибке, что тип библиотечного компьютера (x86) конфликтует с целевым типом (x64). Как изменить тип библиотечного компьютера?