为UWP构建OpenCV

时间:2017-12-12 13:12:47

标签: c++ opencv cmake uwp

我目前正努力为UWP构建OpenCV。

我已经搜索了很多内容并找到了Microsoft's OpenCV Github Repo,其中tecnically应该发挥魔力。然而,这个回购以及我在这方面发现的其他所有东西都已经过时(Visual Studio 2015,旧的OpenCV版本等)。我需要使用OpenCV 3.3,因为它是一个跨平台项目,我不想仅仅因为过时的git repo而重新编译其他所有内容。

任何人都可以解释使用CMake从UWP官方回购中构建OpenCV的过程吗?

我的第一次尝试是简单地使用Windows Dll,但我的应用程序不是喊叫"无法加载模块"对我。然后,我尝试按照herehere所述构建OpenCV Visual Studio项目文件。但是,这对我没有做,因为它会引发以下错误:

  

cmake / OpenCVUtils.cmake上的CMake错误:440(如果):   如果给出论点:

"(" "OR" "OFF" ")"
     

指定了未知参数   呼叫堆栈(最近一次呼叫):   CMakeLists.txt:317(OCV_OPTION)

它还告诉我检查CMakeOutput.log但是到处都是0错误。

如果有人可以告诉我如何摆脱这个错误或者在CMake GUI中为了为UWP构建OpenCV需要改变什么,那就太棒了!

修改

我还尝试使用平台特定的WinRT工具链编译OpenCV,如在platforms / winrt中找到的。它并没有真正改变任何东西(我甚至不确定它是否应该),我仍然得到"无法加载Dll:无法找到指定的模块"。也许GPPK在他的假设中是正确的,它更像是UWP问题,而不是OpenCV问题。无论如何,如果有人对此有所了解,我真的很想得到一些帮助!

1 个答案:

答案 0 :(得分:5)

好的,我还没有得到答案,所以我设法自己做了(或多或少)。

以下是我的表现:

<强>先决条件

  • Visual Studio(2017)
  • UWP SDK
  • CMake的
  • 来自官方报道的OpenCV

<强>步骤

  1. 创建一个您希望内置UWP库的构建文件夹。
  2. 在此文件夹中启动PowerShell并执行以下命令(使用您的本地OpenCV路径交换C:\ OpenCV):cmake -G "Visual Studio 15 2017" -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERS ION="10.0" -DCMAKE_VS_EFFECTIVE_PLATFORMS=x86 -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF C:\OpenCV
  3. 如果您收到与我相同的错误消息(有关更多详细信息,请参阅问题),请转到OpenCV文件夹中的根CMakeLists.txt并在第317行前面添加#(OCV_OPTION(ENABLE_PYLINT) )。这应该修复它,检查,再次执行上面的命令。
  4. 确保输出声明&#34; Windows RT支持是&#34;和&#34; 为Microsoft平台构建:Windows &#34;。
  5. 在构建文件夹中打开OpenCV.sln。确保所有项目都是&#34; Windows Store&#34;或者&#34;通用Windows&#34;并构建两次ALL_BUILD项目:一次进入Release配置,一次进入Debug。然后构建INSTALL项目。
  6. 那就是它,您应该在安装文件夹中找到已构建的Dll。第3步可能是OpenCV中的一个错误,希望在即将推出的版本中修复。