15

这是我在 Visual Studio C++ 中的代码

#include "stdafx.h"
#include<opencv\cv.h>
#include<opencv\highgui.h>

using namespace cv;

int main(int argc, char** argv[]) {
  IplImage* img = cvLoadImage("logo.jpg");
  cvNamedWindow("Test", CV_WINDOW_AUTOSIZE);
  cvShowImage("Test", img);
  cvWaitKey(0);
  cvReleaseImage(&img);
  cvDestroyWindow("Test");
  return 0;
}

我正在使用 OpenCV 2.4.6 和 Visual Studio 2010。这是错误:

openCV_testing.obj : error LNK2019: unresolved external symbol _cvDestroyWindow
referenced in function _main
openCV_testing.obj : error LNK2019: unresolved external symbol _cvReleaseImage     
referenced in function _main
openCV_testing.obj : error LNK2019: unresolved external symbol _cvWaitKey referenced in  
function _main
openCV_testing.obj : error LNK2019: unresolved external symbol _cvShowImage referenced   
in function _main
openCV_testing.obj : error LNK2019: unresolved external symbol _cvNamedWindow    
referenced in function _main
openCV_testing.obj : error LNK2019: unresolved external symbol _cvLoadImage referenced 
in function _main

请帮忙。

4

5 回答 5

19

'unresolved external symbol'意味着您没有链接到所需的库。转到Properties -> Linker -> Additional Library dependencies并添加 OpenCV 库的路径。

于 2013-07-21T10:02:24.847 回答
11

首先检查 如何在 Microsoft Visual Studio 中使用 OpenCV 构建应用程序

如果您仍然遇到同样的问题,您可能处于以下情况之一。

  1. 您的活动解决方案平台是 x86,但您正在尝试链接 x64 OpenCV 库。
  2. 您的活动解决方案平台是 X64,但您正在尝试链接 x86 OpenCV 库。

如果您处于其中一种情况,请检查 Compiling a 64-bit Application in Microsoft Visual Studio Express 2010

于 2013-11-07T11:42:19.890 回答
9

将这些添加到您的代码中:

#pragma comment (lib, "opencv_core248d.lib")
#pragma comment (lib, "opencv_highgui248d.lib")
#pragma comment (lib, "opencv_imgproc248d.lib")
#pragma comment (lib, "opencv_video248d.lib")
#pragma comment (lib, "opencv_features2d248d.lib")

它对我有用。

于 2014-08-09T11:02:35.147 回答
0

我搜索了很多相同的问题,这是我找到的最好的解决方案,它对我有用。

打开 Configuration Properties > C/C++ > General,然后编辑字段 Additional Include Directories 以添加这 3 个路径(用于标题):

C:\OpenCV2.3\build\include\opencv

C:\OpenCV2.3\build\include\opencv2

C:\OpenCV2.3\build\include

于 2013-09-30T19:30:10.367 回答
0

我知道这与 OpenCV 库无关,但我在导入 Tiny-Process 库时遇到了问题。我的.lib文件已正确链接,Configuration Properties -> Linker -> Additional Library dependencies并且正确添加了附加包含目录,但仍未找到函数定义,并且出现 LNK2019 错误。

要解决此问题,我必须进入库项目属性,更改 Character Set 属性Configuration Properties -> Advanced Character Set 并将值更改Use Multi-Byte Character SetUse Unicode Character Set.

重新编译库并使用新.lib文件后,它正在工作。

于 2021-03-30T12:39:39.163 回答