【问题标题】:LINK : fatal error LNK1104: cannot open file opencv_gpu249d.lib链接:致命错误 LNK1104:无法打开文件 opencv_gpu249d.lib
【发布时间】:2014-11-13 19:15:18
【问题描述】:

我正在尝试从源代码构建用于 CUDA 的 opencv,我目前正在使用来自 2.4.9 预构建设置的源代码,因为 git 非常慢。

我使用 Visual Studio 2013 和 Cuda 6.5 首先有很多错误,比如找不到opencv_core249d.lib 等,所以我在路径变量中添加了prebuilt 库,现在这些错误都消失了,除了一个错误。它在lib/Debug 中寻找opencv_gpu249d.lib,为什么它还没有编译时要寻找这个opencv_gpu249d.lib? 为什么不在prebuilt 库中使用gpu249d.lib

谢谢

【问题讨论】:

  • 你确定它存在吗?以前的版本没有为预建库提供任何 gpu 支持。
  • 是的,它在这里,OpenCV\build\x64\vc12\lib\opencv_gpu249d
  • 只是说,如果你有资源,从头开始构建 everything 可能是明智的。至少你知道,这些部件是合适的。
  • 如何从头开始构建?它会给出错误,因为它依赖于尚未编译的库。我不是从源代码编译的专家。我需要在 Windows 中编译 opencv 以用于 CUDA。
  • 提示:您不应该将它们添加到路径变量中,而是添加到项目设置中:“其他链接目录”(但应该对您的问题没有影响)

标签: opencv cuda visual-studio-2013 gpu


【解决方案1】:

预编译的 OpenCV 库不支持 CUDA。您必须在启用 CUDA 的情况下再次编译它们。在设法从源代码构建 OpenCV 2.4.9 + CUDA 6.5 + vs2013 之前,我尝试了很多次。

简而言之,您需要取消“CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE”,并启用“WITH_CUBLAS”、“WIT​​H_CUDA”、“WIT​​H_OPENGL”、“WIT​​H_TBB”。

详细步骤可以在这里找到:OPENCV 2.4.9 + CUDA 6.5 + VISUAL STUDIO 2013

TBB 和 Python 可能是不必要的,但我不确定。我有他们两个。编译后的 opencv_gpu249d.lib 对我来说很好。

【讨论】:

    【解决方案2】:

    请关注great wiki tutorial!。

    要使用 cuda 编译,请在 CMAKECuda 模块 uncheck CUDA_ATTACH_VS_BUILD_RULE_TO_CUDA_FILE flag 中选择高级复选框。现在编译和享受。

    【讨论】:

    • 我已经取消选择 Cuda_ATTACH_VS....... 我仍然遇到编译器试图在 lib/debug 文件夹中查找 opencv_gpu298d.lib 的问题
    • 你有没有通过VS构建源代码?还是您只是将其复制到该文件夹​​中?
    • 如果你的意思是lib文件,我让我的路径变量指向预建lib文件中的lib文件,因为VS如果找不到lib文件会产生很多错误,我不知道为什么它需要预构建的 lib 文件。
    • 请按照wiki教程中提到的正确步骤进行操作。否则你会面临很多错误。
    • 我遵循了相同的步骤,但我不知道为什么 wiki 导师没有遇到同样的问题。构建调试的步骤相同。但它给出了许多链接错误,无法找到诸如 opencv_core249d.lib 之类的 lib 文件。这就是为什么我将路径变量设置为指向预构建的 lib 文件。现在它没有说关于core249.lib的错误,但它仍然给出一个错误无法打开gpu249d.lib
    猜你喜欢
    • 2011-09-07
    • 2011-06-23
    • 2017-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多