这是我在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
请帮忙。
答案 0 :(得分:14)
'未解析的外部符号'表示您没有链接到所需的库。 转到properties-&gt; linker-&gt;其他库依赖项并添加opencv库的路径。
答案 1 :(得分:10)
首先检查 How to build applications with OpenCV inside the Microsoft Visual Studio
如果您仍然遇到同样的问题,可能会遇到下列情况之一。
如果您遇到其中一种情况,请检查 Compiling a 64-bit Application in Microsoft Visual Studio Express 2010
答案 2 :(得分:6)
将这些添加到您的代码中:
#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")
它对我有用。
答案 3 :(得分:0)
我搜索了很多相同的问题,这是我找到的最好的解决方案,它对我有用。
打开配置属性&gt; C / C ++&gt;常规,并编辑字段附加包含目录以添加这3个路径(对于标题):
C:\ OpenCV2.3 \构建\包括\ OpenCV的
C:\ OpenCV2.3 \构建\包括\ opencv2
C:\ OpenCV2.3 \构建\包括
答案 4 :(得分:0)
我知道这与 OpenCV 库无关,但我在导入 Tiny-Process 库时遇到了问题。我的 .lib
文件已在 Configuration Properties -> Linker -> Additional Library dependencies
中正确链接,并且附加包含目录已正确添加,但仍未找到函数定义,并且我收到了 LNK2019 错误。
要解决此问题,我必须进入库项目属性,更改 Configuration Properties -> Advanced Character Set
中的字符集属性并将值 Use Multi-Byte Character Set
更改为 Use Unicode Character Set
。
重新编译库并使用新的 .lib
文件后,它可以工作了。