首先,我已经检查了许多 stackoverflow 中的 LinkerError 问题。但一切似乎都与我息息相关。让我分享一些信息:
法典:
#include<opencvcv.h>
#include<opencvhighgui.h>
void main(){
IplImage* img = cvLoadImage("C:kaplan.jpg");
cvNamedWindow("ImgDisp", CV_WINDOW_AUTOSIZE);
cvShowImage("ImgDisp", img);
cvWaitKey(0);
cvReleaseImage(&img);
cvDestroyWindow("ImgDisp");
}
系统设置:
- 配置 : 调试
- 平台 : x64
VC++ 目录 -> 可执行文件目录 =C:\opencv\build\x64\vc12\bin;$(ExecutablePath)
VC++ 目录 -> 库目录 =
C:\opencv\build\x64\vc12\staticlib;C:\opencv\build\x64\vc12\lib;$(LibraryPath)C/C++ -> 常规 -> 其他包含目录 =
C:\opencv\build\include\opencv2;C:\opencv\build\include;C:\opencv\build\include\opencv;%(AdditionalIncludeDirectory)链接器 -> 常规 -> 其他库目录 =
C:\opencv\build\x64\vc12\staticlib;C:\opencv\build\x64\vc12\lib;%(AdditionalLibraryDirectory)链接器 -> 输入 -> 其他依赖项 =
opencv_calib3d300d.lib;opencv_core300d.lib;opencv_features2d300d.lib;opencv_flann300d.lib;opencv_hal300d.lib;opencv_highgui300d.lib;opencv_imgcodecs300d.lib;opencv_imgproc300d.lib;opencv_ml300d.lib;opencv_objdetect300d.lib;opencv_shape300d.lib;opencv_stitching300d.lib;opencv_superres300d.lib;opencv_ts300d.lib;opencv_video300d.lib;opencv_videoio300d.lib;opencv_videostab300d.lib;%(AdditionalDependencies)
获得的错误:
1>opencv_imgcodecs300d.lib(loadsave.obj):错误LNK2005:"公共: __cdecl std::_Container_base12::_Container_base12(void)" (??0_Container_base12@std@@QEAA@XZ) 已在 中定义 msvcprtd.lib(MSVCP120D.dll)
1>opencv_core300d.lib(stat.obj):错误LNK2019:未解析的外部 符号ippicviNormDiff_L2_8s_C3CMR在函数"双"中引用 __cdecl cv::norm(class cv::_InputArray const &,class cv::_InputArray const &,int,class cv::_InputArray const &)" (?norm@cv@@YANAEBV_InputArray@1@0H0@Z)
1>opencv_core300d.lib(matmul.obj):错误LNK2019:未解析的外部 符号ippicviDotProd_32s64f_C1R在函数"双"中引用 __cdecl cv::d otProd_32s(int const *,int const *,int)" (?dotProd_32s@cv@@YANPEBH0H@Z)
1>c:\users\juhsis\documents\Visual Studio 2013\项目\项目1\x64\调试\项目1.exe:致命错误LNK1120: 528 个未解析的外部
那么,我错过了什么?
我刚刚找到了问题的根源。在 opencv 3.0 中,我意识到我以前使用过并位于 \lib 文件中的所有库文件都已移动到 \staticlib 中。在 \lib 文件中,只有 2 个库放置:opencv_world300d.lib;opencv_ts300d.lib 。然后我删除了指向 staticlib 文件夹的所有链接以及该文件夹下的所有库,并替换为该文件夹下的 \lib 文件夹和库。
以下是我当前使用的设置更改:
- 配置 : 调试
-
平台 : x64
-
C/C++ -> 常规 -> 其他包含目录 =
C:\opencv\build\include;%(AdditionalIncludeDirectory) -
链接器 -> 常规 -> 其他库目录 =
C:\opencv\build\x64\vc12\lib;%(AdditionalLibraryDirectory) -
链接器 -> 输入 -> 其他依赖项 =
opencv_world300d.lib;opencv_ts300d.lib;%(ExtraalDependencies)