【问题标题】:fatal error LNK1104: cannot open file 'opencv_calib3d246.dll'致命错误 LNK1104:无法打开文件“opencv_calib3d246.dll”
【发布时间】:2015-11-30 05:47:25
【问题描述】:

我正在尝试使用 OpenCV 运行 Visual C++。我已将 OpenCV 链接到 Visual Studio 2012。当我尝试运行代码时,它给了我一个错误;

LINK : fatal error LNK1104: cannot open file 'opencv_calib2d246.dll'

这就是我想要做的:

#include "stdafx.h"
#include "opencv2\highgui\highgui.hpp"
#include "opencv2\core\core.hpp"
#include<iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv)
{
    if(argc !=2)
    {
        cout <<"usage: display_image ImageToLoadAndDisplay"<<endl;
        return -1;
    }

    Mat image;
    image=imread(argv[1],CV_LOAD_IMAGE_UNCHANGED);

    if(! image.data)
    {
        cout<<"couldn't open or find the image"<<endl;
        return -1;
    }

    namedWindow("Display Window",WINDOW_AUTOSIZE);
    imshow("Display Window",image);

    waitKey(0);
    return 0;
}

我已经包含了所有的库。我在 Windows 7 32 位系统上使用 OpenCV 2.4.6。

还有什么需要补充的,还是需要在程序中初始化?

更新

我硬盘中OpenCV的路径:E:\opencv\opencv。系统环境变量中的路径:%OPENCV_DIR%\x86\vc11\bin;,其中我创建了一个新变量为 OPENCV_DIR,并将路径指定为E:\opencv\opencv\build。在linker\command line

/OUT:"E:\VS2012 Projects\cvtest\Debug\cvtest.exe" /MANIFEST /NXCOMPAT /PDB:"E:\VS2012 Projects\cvtest\Debug\cvtest.pdb" /DYNAMICBASE "opencv_calib3d248.lib" “opencv_calib3d248d.lib” “opencv_contrib248.lib” “opencv_contrib248d.lib” “opencv_core248.lib” “opencv_core248d.lib” “opencv_features2d248.lib” “opencv_features2d248d.lib” “opencv_flann248.lib” “opencv_flann248d.lib” “opencv_gpu248.lib” “opencv_gpu248d.lib” “opencv_highgui248.lib” “opencv_highgui248d.lib” “opencv_imgproc248.lib” “opencv_imgproc248d.lib” “opencv_legacy248.lib” “opencv_legacy248d.lib” “opencv_ml248.lib” “opencv_ml248d.lib” “opencv_nonfree248.lib” “opencv_nonfree248d.lib” “opencv_objdetect248.lib” “opencv_objdetect248d.lib” “opencv_ocl248.lib” “opencv_ocl248d.lib” “opencv_photo248.lib” “opencv_photo248d.lib” “opencv_stitching248.lib” “opencv_stitching248d.lib” “opencv_superres248.lib” “opencv_superres248d.lib” “opencv_ts248.lib” “opencv_ts248d.lib” “opencv_video248.lib” “opencv_video248d.lib” “opencv_videostab248.l” ib” “opencv_videostab248d.lib” “kernel32.lib” “user32.lib” “gdi32.lib” “winspool.lib” “comdlg32.lib” “advapi32.lib” “shell32.lib” “ole32.lib” “oleaut32. lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /DEBUG /MACHINE:X86 /INCREMENTAL /PGD:"E:\VS2012 Projects\cvtest\Debug\cvtest.pgd" /MANIFESTUAC:"level=' asInvoker' uiAccess='false'" /ManifestFile:"Debug\cvtest.exe.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /TLBID:1

现在我无法加载图像。没有致命错误,什么也没有。它正在考虑 if 语句并且不加载任何内容。

有什么建议吗?

【问题讨论】:

  • 您是否添加了对此 dll 的引用?我尝试在 c# 中使用 opencv 我只是在参考中添加了它
  • 转到链接器/常规并将该 .lib 文件所在的路径添加到“附加链接器目录”或类似目录中
  • @Micka 我检查了路径。我也指定了路径。我仍然遇到同样的错误。
  • @EuphoriaGrogi 我还没有尝试通过添加参考。我会检查一下。
  • 要么添加:%OPENCV_DIR%\x86\vc11\lib;到系统 PATH 环境变量或将其添加到链接器中的“其他库目录”->常规

标签: opencv visual-c++ fatal-error


【解决方案1】:

您需要设置的不仅仅是链接器依赖项,而且您很可能错过了一步。

我建议您遵循 this 教程,因为它可以帮助您完成设置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-21
    • 2011-04-02
    • 2013-09-08
    • 1970-01-01
    • 1970-01-01
    • 2016-02-09
    • 1970-01-01
    相关资源
    最近更新 更多