【问题标题】:OpenCV error: "LINK : fatal error LNK1104: cannot open file 'opencv_core231d.lib' "OpenCV 错误:“链接:致命错误 LNK1104:无法打开文件‘opencv_core231d.lib’”
【发布时间】:2014-03-11 18:06:14
【问题描述】:

我正在尝试在 Visual Studio + OpenCV 中编译一个简单的代码,但出现此错误。

代码:

#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace cv;

int main ( int argc, char **argv )

{
    Mat im_gray;
    Mat img_bw;
    Mat img_final;

    Mat im_rgb  = imread("001.jpg");
    cvtColor(im_rgb,im_gray,CV_RGB2GRAY);

    adaptiveThreshold(im_gray, img_bw, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY_INV, 105, 1); 

    imwrite("001-bw2.jpg", img_final);
    return 0;
}  

输出:

1>------ Build started: Project: pibiti, Configuration: Debug Win32 ------
1>LINK : fatal error LNK1104: cannot open file 'opencv_core231d.lib'
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

链接器 >> 输入:

opencv_core231d.lib
opencv_highgui231d.lib
opencv_video231d.lib
opencv_ml231d.lib
opencv_legacy231d.lib
opencv_imgproc231d.lib
tbb_debug.lib
tbb_preview_debug.lib
tbbmalloc_debug.lib
tbbmalloc_proxy_debug.lib
tbbproxy_debug.lib

我该如何解决这个问题? 'opencv_core231d.lib' 文件已经存在,为什么会出现这个错误?

【问题讨论】:

  • lib 确实存在于磁盘上吗?它所在的文件夹是否列在 Linker->General->Additional library directory 下的项目属性中?
  • 请使用 CMake 生成您的项目文件。它将确保所有属性都已配置。

标签: c++ opencv image-processing error-handling


【解决方案1】:

将库文件的路径添加到库路径中。

右键单击项目并转到 Properties->Linker->Additional Library 目录。将路径添加到此列表。

【讨论】:

  • 只有在路径没有添加/错误的情况下才会出现这个错误。如果您将正确的路径添加到您的 opencv lib 文件,错误就会消失。确保在 Visual Studio 中始终将路径添加到所有配置(调试/发布)。另请查看本指南:stackoverflow.com/questions/7011238/…
  • 如果有人遇到此问题,即使他们已将库文件包含到上述属性字段中,Seeraj 的回答可能会对您有所帮助。还可能想检查属性中的配置类型,是否调试、发布等。
【解决方案2】:

我遇到了同样的问题。尽管确保库的路径正确,但我收到“无法打开文件”错误。问题是我在链接器属性的附加程序集引用中将 dll 命名为错误。我已经给了他们如上所述(最后有“231”)。但实际 Dll 的名称以“249”结尾。改变这解决了我的问题。可能对其他人有帮助:-)

在此之后,项目将成功构建。但是你可以预料到你的计算机中缺少 opencv_core249d.lib 的运行时错误,你需要重新安装它。这是因为即使路径已添加到环境变量中,也必须重新启动 Windows 才能使其生效。这样就解决了。

【讨论】:

    【解决方案3】:

    我在 Properties->Linker->Additional Library 目录中遇到了同样的问题, 我不得不更换

    $(OPENCV_DIR)\lib
    

    C:\opencv\build\x86\vc12\lib
    

    在调试和发布中。

    现在它可以工作了。

    【讨论】:

      【解决方案4】:

      添加到这个解决方案列表中,我只是将项目更改为 64 位。

      【讨论】:

        【解决方案5】:

        我遇到了类似的问题 - 我通过更改路径中的链接解决了这个问题。 而不是:$(OPENCV_DIR)\lib 或这种路径 C:\opencv\build\x86\vc12\lib 只需在末尾添加 \ 即可。

        对我来说,它适用于 C:\opencv\build\x86\vc12\lib\,所以我没有尝试使用环境变量。

        【讨论】:

          猜你喜欢
          • 2015-11-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-09-07
          • 2011-06-23
          • 2017-11-29
          • 2014-11-13
          • 1970-01-01
          相关资源
          最近更新 更多