2 yjfdl123 yjfdl123 于 2013.11.15 11:39 提问

opencv hello.obj : error LNK2001: unresolved external symbol _cvNamedWindow

使用的是vs2012 ultimate 和opencv2.4.2,配置基本成功,配置情况贴在后面
源程序如下:
#include
#include
//#pragma comment(lib,"cv.lib")
//#pragma comment(lib,"highgui.lib")
int main()
{
cvNamedWindow("my window",1);
return 0;
}

环境配置都是正常的:
在环境变量中配置:D:\Program Files (x86)\opencv2.4.2\opencv\build\x64\vc10\bin;D:\Program Files (x86)\opencv2.4.2\opencv\build\common\tbb\intel64\vc10

在vc++包含目录中配置

库目录中配置

连接器的附加依赖项中配置如下:
opencv_calib3d242.lib
opencv_contrib242.lib
opencv_core242.lib
opencv_features2d242.lib
opencv_flann242.lib
opencv_gpu242.lib
opencv_haartraining_engine.lib
opencv_highgui242.lib
opencv_imgproc242.lib
opencv_legacy242.lib
opencv_ml242.lib
opencv_nonfree242.lib
opencv_objdetect242.lib
opencv_photo242.lib
opencv_stitching242.lib
opencv_ts242.lib
opencv_video242.lib
opencv_videostab242.lib
当然debug和release都进行了如此的配置,debug下多一个字母d

以前也是如此配置,基本成功,但是这次始终成功不了,总是出现问题如下:
hello.obj : error LNK2001: unresolved external symbol _cvNamedWindow

网上找了很多种解决方案都不奏效:
1说连接器和库不匹配
2说没有cv.lib 和higugui.lib几个文件,所以添加了
#pragma comment(lib,"cv.lib")
#pragma comment(lib,"highgui.lib")
但还是运行不成功,求大神帮忙啊!!

2个回答

WillMyPower
WillMyPower   2013.11.15 16:43

确保你的连接器中包含opencv_highgui242.lib,或者直接
#pragma comment(lib,"opencv_highgui242.lib")

#pragma comment(lib,"highgui.lib")是老版本的写法

yjfdl123
yjfdl123   2013.11.22 17:34

非常感谢 ,后来 问题 解决 了
原来是配置有问题
我的电脑是win7 64位,所以在配置opencv时,我都是按照64位 进行配置的。
但是我的开发环境visual studio2012却是一直设置成win32的,所以出了很多莫名其妙的问题

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!