Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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++ 为什么会出现错误LNK2001和LNK1120_C++_Opencv - Fatal编程技术网

C++ 为什么会出现错误LNK2001和LNK1120

C++ 为什么会出现错误LNK2001和LNK1120,c++,opencv,C++,Opencv,可能重复: 我正在使用VisualStudio2010和OpenCV库。 当我试图编译以下代码时,我得到以下错误: 错误LNK2001:未解析的外部符号“class cv::Mat\uU cdecl grdX(class cv::Mat)”(?grdX@@YA?AVMat@cv@@V12@@Z) 错误LNK1120:1个未解析的外部 //Includes #include <iostream> #include <string> #include <cstdio&

可能重复:

我正在使用VisualStudio2010和OpenCV库。 当我试图编译以下代码时,我得到以下错误:

错误LNK2001:未解析的外部符号“class cv::Mat\uU cdecl grdX(class cv::Mat)”(?grdX@@YA?AVMat@cv@@V12@@Z)

错误LNK1120:1个未解析的外部

//Includes
#include <iostream>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <math.h>
#include <vector>
#include <stdio.h>
#include <opencv2/highgui/highgui.hpp>

using namespace std;
using namespace cv;

//Prototypes
Mat grdX(Mat);
Mat grdY(Mat);

int main()
{
    Mat_<uchar> mat = imread("C:/img.jpg");
    int row = mat.rows;
    int col = mat.cols;
    Mat_<uchar> f(row, col);
    f = grdX(mat);
    namedWindow ("img2", CV_WINDOW_AUTOSIZE);
    imshow ("img2", f);
    return EXIT_SUCCESS;
}


Mat grdX(Mat_<uchar> matrix)
{
    int row = matrix.rows;
    int col = matrix.cols;
    Mat_<uchar> grd(row,col);
    for (int i=1; i<=row ;i++)
        {
            for (int j=1; j<=col; j++)
            {
                if (j==1)
                {grd(i,1) = (int)matrix(i,2)-(int)matrix(i,1);}
                else if (j==col)
                {grd(i,col) = (int)matrix(i,col)-(int)matrix(i,col-1);}
                else {grd(i,j)=((int)matrix(i,j+1)-(int)matrix(i,j-1))/2;}
            }
        }
    return grd;
}

Mat grdY(Mat_<uchar> matrix)
{
    int row = matrix.rows;
    int col = matrix.cols;
    Mat_<uchar> grd(row,col);
    for (int i=1; i<=row ;i++)
        {
            for (int j=1; j<=col; j++)
            {
                if (i==1)
                {grd(1,j) = (int)matrix(2,j)-(int)matrix(1,j);}
                else if (i==row)
                {grd(row,j) = (int)matrix(row,j)-(int)matrix(row-1,j);}
                else {grd(i,j)=((int)matrix(i+1,j)-(int)matrix(i-1,j))/2;}
            }
        }
    return grd;
}
//包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
使用名称空间cv;
//原型
Mat grdX(Mat);
Mat-grdY(Mat);
int main()
{
Mat_umat=imread(“C:/img.jpg”);
int行=mat.rows;
int col=mat.cols;
材料(世界其他地区、哥伦比亚);
f=grdX(mat);
namedWindow(“img2”,CV\u窗口\u自动调整大小);
imshow(“img2”,f);
返回退出成功;
}
Mat grdX(Mat_uu矩阵)
{
int row=矩阵.rows;
int col=matrix.cols;
材料(世界其他地区、哥伦比亚);

对于(int i=1;i,需要在项目属性中指定库所在的位置。在链接器-->常规/输入中。
在你的例子中,CV库

My bad,它是这样的->你正在声明
Mat grdX(Mat);
并实现
Mat grdX(Mat_uu矩阵)
。您可能还想让
grdX
通过引用而不是值获取其参数——实际上,它显然会复制整个JPEG以将其传递给函数。这不是本例的原因。我已经在项目项目中指定了库的位置。“您正在声明Mat grdX(Mat);并实现Mat grdX。”(Mat_uuMatrix)“是的,谢谢你,这就是问题的根源。