java - 使用 Cmake 在 Windows x64 上构建 OpenCV for Java

标签 java windows opencv cmake visual-studio-2017

我正在使用 cmake 在 Windows 上构建 OpenCV 420 for Java,包括贡献的(额外)模块。我成功地执行了 cmake 过程来生成 VS 2017 项目。 VS项目,设置为x86目标,编译并生成opencv-420.jar和opencv_420.dll。 opencv_420.dll 大小为 37158kb。它包含编译过程创建的所有依赖库 (dll)。这个 jar 和 dll 对可以与两个文件一起正常工作,从而提供从 Java 到所有 opencv 函数(包括贡献的函数)的完全访问权限。这表明 varions 依赖的 dll 正在合并到单个库 opencv_420.dll 中。

接下来,我为 x64 目标创建了一个文件夹,复制了用于上述 x86 项目的 x86 文件夹,并将平台设置为 x64。我成功运行 cmake,生成 VS 项目,据我所知,它编译成功(有很多事情我不完全理解)。这将按预期生成 x64 opencv-420.jar 和 opencv_420.dll。然而,opencv_420.dll 很小,只有 2621kb,当我尝试运行该应用程序时,它失败并无法找到依赖库。我已经确定这个 dll 不包含像 x86 dll 那样的依赖库。

我已经检查了 cmake 文件和 VS 项目,似乎无法找到 x86 和 x64 项目之间导致依赖 dll 未合并到 opencv_420.dll 中的差异。

最佳答案

这个问题是我自己回答的。只见树木不见森林! x86 和 x64 cmake 选项之间存在差异,直到我今天所做的一些阅读引发了顿悟时刻,我才发现了这一点。我需要在 x64 配置中启用 Java Fat Jar 选项,就像在 x86 配置中一样。现在一切都好。

关于java - 使用 Cmake 在 Windows x64 上构建 OpenCV for Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61491454/

相关文章:

java - 使用 maven 发布多个长期存在的分支

c# - 对于使用 .NET Core Version 2+ 创建的软件,需要转到 “live” ,是否有任何理由在目标 “live” 操作系统上安装 .NET Core 运行时?

opencv - 在图像中查找图标

java - 我无法生成正确的代码来选择我正在处理的 BI 仪表板上的特定过滤器

java - JSP包问题

java - 在Java Applet中绘制图像和ImageObserver

windows - 如何在以.bat文件编写的powershell命令中读取变量

windows - 在函数外使用变量

java - 从 Android Activity 调用时 OpenCv 崩溃

python - uint8 CIE Luv Mat 的取值范围是多少?