错误LNK2019:无法解析的外部符号(OpenCV+;VS2012)
我找了很多,但没有一个答案有用 我添加了以下内容:错误LNK2019:无法解析的外部符号(OpenCV+;VS2012),opencv,visual-studio-2012,Opencv,Visual Studio 2012,我找了很多,但没有一个答案有用 我添加了以下内容: include directory: D:\Program Files (x86)\opencv\build\include library directory: D:\Program Files (x86)\opencv\build\x86\vc11\lib additional library directory: D:\Program Files (x86)\opencv\build\x86\vc11\lib additional dep
include directory: D:\Program Files (x86)\opencv\build\include
library directory: D:\Program Files (x86)\opencv\build\x86\vc11\lib
additional library directory: D:\Program Files (x86)\opencv\build\x86\vc11\lib
additional dependency: %(AdditionalDependencies);opencv_core248d.lib;opencv_imgproc248d.lib;opencv_ml248d.lib;opencv_video248d.lib;opencv_features2d248d.lib;opencv_calib3d248d.lib;opencv_objdetect248d.lib;opencv_contrib248d.lib;opencv_legacy248d.lib;opencv_flann248d.lib;
我使用的是64位机器,但是添加x64目录会带来很多麻烦,所以我添加了x86目录
我使用了下面的测试代码:
#include "opencv2/opencv.hpp"
using namespace cv;
int main()
{
Mat img = imread("../opencv.jpg");
if (img.empty())
{
fprintf(stderr, "Error: load image failed.");
return -1;
}
namedWindow("image", CV_WINDOW_AUTOSIZE);
imshow("image", img);
waitKey();
return 0;
}
问题是:(忽略中文部分)
1>test.obj:错误LNK2019:无法解决的外部符号“void u cdecl cv::namedWindow(类std::basic_string const&,int)”(?namedWindow@cv@@YAXABV?$basic_string@DU?$char_traits@D@性病病毒$allocator@D@2@@std@@H@Z),该符号在函数 _主要中被引用
1> test.obj:错误LNK2019:无法解析的外部符号“int u cdecl cv::waitKey(int)”(?waitKey@cv@@YAHH@Z),该符号在函数 _主要中被引用
1> test.obj:错误LNK2019:无法解决的外部符号“void\uu cdecl cv::imshow(类std::basic\u string const&,类cv::\u InputArray const&”)(?imshow@cv@@YAXABV?$basic_string@DU?$char_traits@D@性病病毒$allocator@D@2@@std@@ABV_InputArray@1@@Z) ,该符号在函数 _主要中被引用
1> test.obj:错误LNK2019:无法解析的外部符号“class cv::Mat u cdecl cv::imread(class std::basic_string const&,int)”(?imread@cv@@是吗?AVMat@1@ABV?$basic_string@DU?$char_traits@D@性病病毒$allocator@D@2@@std@@H@Z),该符号在函数 _主要中被引用
提前谢谢你 请参考对的答案。这可能是由于64/32位库和应用程序混淆造成的
详细说明如何使用VS构建opencv应用程序。希望能有帮助 你的目标是什么<代码>win32或
x64
?链接器错误表明未添加相应的库。@feihu win32(我以前尝试过x64,也遇到此错误)您正在构建的应用程序如何?我是说构建->配置管理器->平台,它也是win32吗?是的,它也是win32。。在BUILD->Configration Manager->platform@feihuopencv_highgui[xxx]d.lib中只有“win32”。lib是用于cv::namedWindow
和cv:waitKey
的,似乎您没有包括这个库。您可以添加它,然后再次尝试查看错误消息是否更改?谢谢!我重新启动计算机,它就工作了。。我相信highgui是关键。(真讨厌窗户和vs!)赫敏,真奇怪。在不知道原因的情况下重启计算机通常有帮助:-)Iinstructions链接不再有效。正确的链接:
1>test.obj : error LNK2019: unsolvable external symbol "void __cdecl cv::namedWindow(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,int)" (?namedWindow@cv@@YAXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z),该符号在函数 _main 中被引用
1>test.obj : error LNK2019: unsolvable external symbol "int __cdecl cv::waitKey(int)" (?waitKey@cv@@YAHH@Z),该符号在函数 _main 中被引用
1>test.obj : error LNK2019: unsolvable external symbol "void __cdecl cv::imshow(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class cv::_InputArray const &)" (?imshow@cv@@YAXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV_InputArray@1@@Z),该符号在函数 _main 中被引用
1>test.obj : error LNK2019: unsolvable external symbol "class cv::Mat __cdecl cv::imread(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,int)" (?imread@cv@@YA?AVMat@1@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z),该符号在函数 _main 中被引用