Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ OPENCV链接错误-Win32&;VS2012_C++_Opencv_Visual Studio 2012 - Fatal编程技术网

C++ OPENCV链接错误-Win32&;VS2012

C++ OPENCV链接错误-Win32&;VS2012,c++,opencv,visual-studio-2012,C++,Opencv,Visual Studio 2012,我已经构建了openCV 3.0.0的alpha和beta版本。但是每次我运行我的项目时,我只会在“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

我已经构建了openCV 3.0.0的alpha和beta版本。但是每次我运行我的项目时,我只会在“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);

}
#包括
#包括
#包括
#包括
使用名称空间cv;
int main()
{
Mat a=Mat::零(10,10,0);
材料b;
b=imread(“Mu.jpg”);
imshow(“s”,a);
waitKey(1000);
}
当我删除“imread”函数时,它可以正常工作。生成和运行时没有错误,并显示小黑色图像(来自“A”矩阵) 我从头开始重新构建了解决方案&OpenCV,但仍然遇到了这个错误

我正在使用VS2012,并在项目的属性表中添加了include&lib路径。
有人能帮忙吗?

当编译器无法获得所声明函数的定义时,此未解决的外部符号链接器错误基本上会出现

因此,请确保在代码中的某个地方定义了
imread(“Mu.jpg”){}
,然后尝试编译相同的代码


检查您是否正确链接了库,如果您使用的是opencv2.2,这可能也很有用。

imread
函数已移动到
imgcodecs
库,因此您必须包括它:

对于MSVC用户:将“opencv_imgcodecs300d.lib”添加到“配置属性->链接器->输入->传统依赖项”中,并包含“#包含”

对于Qt用户:对于Qt IDE用户,将
-lopencv\u imgcodecs300d
-lopencv\u imgcodecs300
添加到.pro文件中 和
#将
包含到主文件中


注意:库名称中的数字300应更改为与使用的OpenCV版本相匹配。

应该是opencv2库的一部分,假设它链接正确,则不会发生错误。这不是用户应该定义的东西。我如何确保它被正确链接?链接和执行“imshow”还不够吗?imread在3.0中从highgui移动到了imgCodes,所以,不同的头/lib非常感谢!!已经修好了!!!它是有线的,因为
imread
signature也在highgui头中,所以只有lib文件需要更改,我想它可以算作bug…“因为imread signature也在highgui头中”-我想,这更便于转换