Я собираю OpenCV 420 для Java на Windows, используя cmake, включая дополнительные (дополнительные) модули. Я успешно выполняю процессы cmake для генерации проекта VS 2017. Проект VS, установленный для цели x86, компилирует и генерирует opencv-420.jar и opencv_420.dll. Размер opencv_420.dll составляет 37158 КБ. Он содержит все зависимые библиотеки (dll), созданные процессом компиляции. Эта пара jar и dll корректно работает с двумя файлами, предоставляя полный доступ от Java ко всем функциям opencv, включая добавленные. Это показывает, что зависимые от вариаций dll объединяются в единую библиотеку opencv_420.dll.
Затем я создал папку для цели x64, скопировал папку x86, которую использовал для вышеуказанного проекта x86, и установил платформу x64 , Я успешно запускаю cmake, генерирую проект VS, и, насколько я могу судить, он успешно компилируется (многое еще не до конца понятно). Это создает x64 opencv-420.jar и opencv_420.dll, как и ожидалось. Тем не менее, opencv_420.dll имеет небольшой размер в 2621 КБ, и при попытке запустить приложение не удается найти зависимые библиотеки. Я определил, что эта DLL не содержит зависимых библиотек, как в x86 DLL.
Я изучил файлы cmake и проект VS и, похоже, не могу найти разницу между проектами x86 и x64, которая приводит к тому, что зависимые библиотеки не объединяются с opencv_420.dll.