2012-10-02 4 views
-1

Possible Duplicate:
What is an undefined reference/unresolved external symbol error and how do I fix it?는 이유는 무엇 비주얼 스튜디오 2010 라이브러리 OpenCV의 함께 일하고 있어요 오류 LNK2001 및 LNK1120

을받을 수 있나요. 나는 내가 이러한 오류 얻을 다음 코드를 컴파일 할 때 :

오류 LNK2001을 :? 확인되지 않은 외부 기호를 "클래스 이력서 :: 매트 __cdecl grdX (클래스 이력서 :: 매트)"(grdX @@ YA AVMat @ 이력서 @@ 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; 
} 

내 코드에서 어떤 문제가 있는지 찾을 수 없습니다.

+0

내 잘못, 이건 -> http://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved-external-symbol-error-and-how -do-i-fix/12574403 # 12574403 –

+0

'Mat grdX (Mat);을 선언하고'Mat grdX (Mat_ 행렬)'을 구현하고 있습니다. –

+0

'grdX'는 value가 아닌 reference에 의해 매개 변수를 가지기를 원할 것입니다. 분명히 전체 JPEG를 그냥 복사하여 함수에 전달할 것입니다. –

답변

2

라이브러리가있는 프로젝트 속성을 지정해야합니다. 링커에서 -> 일반/입력. 귀하의 경우 CV 라이브러리

+0

이 경우 원인이 아닙니다. –

+0

이미 프로젝트 환경에서 내 lib 디렉토리의 위치를 ​​지정했습니다. "Mat grdX (Mat)를 선언하고 Mat grdX (Mat_ 행렬)를 구현했습니다."문제의 원인을 알려 줘서 고맙습니다. – alvinleetya

관련 문제