【问题标题】:OpenCV build with CUDA, TBB, MKL, VTK on Windows在 Windows 上使用 CUDA、TBB、MKL、VTK 构建 OpenCV
【发布时间】:2018-12-14 16:55:50
【问题描述】:

我尝试在启用 Intel TBB、MKL、TBB+MKL、VTK、Qt、Eigen 和 CUDA 的情况下构建 OpenCV。 CMake 构建工作得很好,并且生成了 Visual Studio 解决方案,没有出现错误。

但是在 VS 2017 上构建 OpenCV 时,它失败了。

opencv_cudev_main.obj:错误 LNK2019:函数 DllMain 中引用的未解析外部符号“__declspec(dllimport) bool cv::__termination”(__imp_?__termination@cv@@3_NA)

opencv_cudev400.dll : 致命错误 LNK1120: 1 unresolved externals

以下是有关当前配置的更多详细信息。

  • CMake (v. 3.13.1)
  • OpenCV 源代码 (v 4.0.0)
  • OpenCV 贡献 (v 4.0.0)
  • Visual Studio 2017(v 15.9.4)
  • CUDA 工具包 (v 10.0)
  • 英特尔 TBB(v 2019 更新 3)
  • 英特尔 MKL(v 2019 更新 3)
  • VTK (v 8.1)
  • Qt (v. 5.12.0)
  • 特征 (v. 3.3.7)
  • 操作系统:Windows 10(内部版本 1809)

我是否忽略了某些东西,或者我必须更改我正在使用的库的版本以便它们与 Opencv 4.0.0 一起使用?

这是我的 CMake 配置字符串

"C:\Libraries\CMake\bin\cmake.exe" -B"%openCVRoot%\build" -H"%openCVRoot%\core-src" -G"Visual Studio 15 2017 Win64" -DBUILD_opencv_world=ON -DWITH_CUDA=ON -DCUDA_FAST_MATH=ON -DWITH_CUBLAS=ON -DWITH_MKL=ON -DMKL_USE_MULTITHREAD=ON -DMKL_WITH_TBB=ON -DWITH_TBB=ON -DINSTALL_TESTS=OFF -DINSTALL_C_EXAMPLES=OFF -DBUILD_EXAMPLES=OFF -DWITH_QT=ON -DWITH_VTK_=ON -DWITH =ON -DBUILD_PERF_TESTS=OFF -DBUILD_DOCS=OFF -DBUILD_JAVA=OFF -DBUILD_opencv_python2=OFF -DBUILD_opencv_python3=OFF -DOPENCV_ENABLE_NONFREE=ON -DOPENCV_EXTRA_MODULES_PATH="%openCVRoot%\contrib-src\modules" -DWITH_EIGEN=ON

【问题讨论】:

  • "它失败了" ...你得详细说明一下。
  • 您需要指定为构建它而执行的每个步骤。构建 OpenCV 会让人头疼。您执行了哪些步骤?
  • @DanMašek,现已更新。感谢您的提示。

标签: c++ opencv cmake-gui


【解决方案1】:

假设您正在尝试从源代码构建:https://github.com/opencv/opencv 您需要检查是否:

  • PATH 变量设置正确,这意味着您应该让它们指向相应的库。否则,需要在 CMake 中手动指定路径
  • 你有正确的库版本,你可以在这里查看列表https://docs.opencv.org/master/d3/d52/tutorial_windows_install.html以及解释
  • 如果您自己构建库,请注意它们处于正确的模式(调试/发布)
  • 您还应该检查您是否拥有每个库:我没有在您的列表中看到 Eigen
  • 检查您的 cmake 版本(版本 >=3.9.1)

编辑 由于您添加了您遇到的错误,我可能有一个迹象:

类似的问题: https://github.com/opencv/opencv/issues/13208

关于同一问题的初始帖子: https://github.com/opencv/opencv/issues/12865

发布解决方案: https://github.com/opencv/opencv/pull/13209

补丁 #13209 应该已经解决了您的问题。

【讨论】:

  • 嗨 Patafikss,刚刚更新了我的问题,提供了更多详细信息。现在打算再试一次。谢谢提示!
猜你喜欢
  • 2015-06-15
  • 1970-01-01
  • 2021-11-15
  • 2011-07-14
  • 1970-01-01
  • 1970-01-01
  • 2021-05-11
  • 2020-09-29
  • 1970-01-01
相关资源
最近更新 更多