我已经构建了openCV 3.0.0 alpha& amp;测试版。但每次我运行我的项目时,我只会因为" imread"而得到此错误功能:
error LNK2019: unresolved external symbol "class cv::Mat __cdecl cv::imread(class cv::String const &,int)" (?imread@cv@@YA?AVMat@1@ABVString@1@H@Z) referenced in function _main ...
这是我的代码:
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <stdlib.h>
#include <stdio.h>
using namespace cv;
int main()
{
Mat a=Mat::zeros(10,10,0);
Mat b;
b=imread("Mu.jpg");
imshow("s",a);
waitKey(1000);
}
当我删除&#34; imread&#34;功能它工作正常。构建并运行没有错误并显示小黑图像(来自&#34; A&#34; Matrix) 我重新构建了解决方案&amp;从头开始OpenCV仍然出现此错误。
我正在与VS2012合作,我添加了包含&amp;项目属性表中的lib路径。 任何人都可以帮忙吗?
答案 0 :(得分:3)
imread
函数已移至imgcodecs
库,因此您必须将其包含在内:
对于MSVC用户: 添加&#34; opencv_imgcodecs300d.lib&#34;到&#34;配置属性 - &gt;链接器 - &gt;输入 - &gt;有条件的依赖关系&#34;并包括&#34; #include&#34;
对于Qt用户: 对于Qt IDE用户,将-lopencv_imgcodecs300d
或-lopencv_imgcodecs300
添加到.pro文件
和#include <opencv2/imgcodecs/imgcodecs.hpp>
到您的主文件
注意: 应更改lib名称中的数字300以匹配使用的OpenCV 版本。
答案 1 :(得分:0)
当编译器无法获得声明的那个函数的定义时,这个未解析的外部符号链接器错误基本上就会到来。
因此,请确保在代码中的某处定义了imread("Mu.jpg"){}
,然后尝试编译它。
检查您是否已正确链接库,如果您使用的是opencv2.2,link可能也很有用。