我尝试将OpenCV库集成到基于Qt的Visual Studio 2012项目中。我知道有很多其他线程解决了这个问题,但没有一个解决了我的链接问题。
- Windiws 8.1 64位
- Visual Studio 2012 32位
- OpenCV 3.0
- Qt 5.1 32位和Qt Add-In 1.2.3
我下载了OpenCV 3.0 Windows包,并使用CMake和Visual Studio编译器进行构建;我按照这个指示进行操作。生成的构建文件夹如下所示:。.lib和.dll文件已正确生成:
然后我按照官方OpenCV页面和这个页面的说明进行了以下配置:
- VC++目录 ‣ "可执行文件目录":我添加了第三张图片中显示的bin文件夹的路径
- VC++目录 ‣ "库目录":我添加了第二张图片中显示的lib文件夹的路径
- C/C++ ‣ 常规 ‣ "附加包含目录":在这里,我添加了提取的OpenCV软件包原始include文件夹的路径,因为生成include文件夹为空
- 链接器 ‣ 常规 ‣ "附加库目录":在这里,我添加了lib文件的路径
- 链接器 ‣ 输入 ‣ "附加依赖项":在这里,我列出了所有库,如下所示:
opencv_core300d.lib
opencv_highgui300d.lib
opencv_imgproc300d.lib
opencv_video300d.lib
opencv_calib3d300d.lib
opencv_contrib300d.lib
opencv_features2d300dd.lib
opencv_flann300d.lib
opencv_gpu249d.lib
opencv_legacy300d.lib
opencv_ml300d.lib
opencv_nonfree300d.lib
opencv_objdetect300dd.lib
opencv_ocl300d.lib
opencv_photo249d.lib
opencv_stitching300d.lib
opencv_superres300d.lib
opencv_ts300d.lib
opencv_videostab300d.lib
我还想指出,我无法将代码生成更改为/MTd,因为Qt不能与此配合使用(但这不应该是问题,因为我在CMake配置中激活了WITH_QT选项来构建OpenCV)
此外,我将所有.dll文件放入与我的生成的调试.exe文件相同的目录中(否则Visual Studio会抱怨找不到.dll文件)
当我尝试执行OpenCV库的函数或仅创建对象时,我总是会得到未解决的链接错误,如下所示:
Fehler 2 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""class cv::Mat __cdecl cv::imread(class cv::String const &,int)" (?imread@cv@@YA?AVMat@1@ABVString@1@H@Z)" in Funktion "_main".
或者这个
Fehler 2 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: __thiscall cv::VideoCapture::VideoCapture(void)" (??0VideoCapture@cv@@QAE@XZ)" in Funktion ""void __cdecl loadMovie(class QString)" (?loadMovie@@YAXVQString@@@Z)".
我真的很感激帮助,因为我已经为此挣扎了整整一个星期,尝试了互联网上的一切。
imread
现在在哪里。 - Mickaopencv_imgcodecs300d.lib
。 - Micka