2009-11-06 10 views
1

Visual Studio에서이 오류가 발생하며 그 이유를 모르겠습니다. 줄 번호도 표시하지 않습니다. 어떤 단서?Visual Studio에서 오류가 발생했습니다.

오류 1 오류 LNK2028 : 해결되지 않은 토큰 (0A000041) "무효 __cdecl free_img (구조체 이미지 *)" (free_img @@ $$ FYAXPAUImage @@@ Z?) 기능에 언급 된 "이중 * __cdecl calc_zernike_moments (구조체 이미지 CONST의 *, INT, 구조체 ZernikeBasis CONST *) " (? calc_zernike_moments @@ $$ FYAPANPBUImage @@ HPBUZernikeBasis @@@ Z) zernike_moments.obj TestLibrary

당신은 라이브러리를 링크해야
+0

무엇이 오류입니까 ?? – Vinay

답변

1

free_img()는 프로젝트에 포함되지 않은 .cpp 파일에 정의되어 있거나 연결된 적이없는 DLL 또는 정적 라이브러리에있는 함수입니다. 전자의 경우 원본 파일에서 함수를 검색 한 다음 해당 .cpp 파일을 프로젝트에 추가해야합니다. 후자라면, 어떤 라이브러리가 free_img()를 제공하는지 확인한 다음 그 라이브러리에 대한 .lib 파일을 찾아야합니다. 그럼 당신은이 작업을 수행 할 수 있습니다

개발 환경

  1. 열기 프로젝트의 속성 페이지 대화 상자에서 링커 입력으로 파일을 lib 디렉토리에 추가하려면. 자세한 내용은 Visual C++ 프로젝트 속성 설정을 참조하십시오.
  2. 링커 폴더를 클릭하십시오.
  3. 입력 속성 페이지를 클릭하십시오.
  4. 추가 종속성 속성을 수정하십시오. (http://msdn.microsoft.com/en-us/library/ba1z7822(VS.80).aspx)
0

. free_img()의 정의는 어디에 있습니까? 당신은 방금 .H을 포함하고

+0

예. 내가 어떻게 할 수 있니? –

3

lib에는 연결하지 당신은 일상

void __cdecl free_img(struct Image *foo) 

를 호출하는 루틴

double * __cdecl calc_zernike_moments(struct Image const *foo, 
             int baz, 
             struct ZernikeBasis const *bar) 

을 가지고 있고 당신은 free_img() 루틴을 제공하지 않았다되는 링커와 일치합니다.

0

오류는 컴파일러 오류가 아니라 링커 오류이므로 연결된 줄 번호가 없습니다. 오히려 오류는 함수 calc_zernike_moments이 의 컴파일 된 소스 중 하나에 정의되어 있지 않은 다른 루틴 free_img을 호출 중이므로 다른 방법으로 제공해야한다는 것을 알려줍니다. 일반적으로 여기에 누락 된 것은 링커가 free_img의 구현을 가져올 수 있도록 타사 라이브러리가 프로젝트에 포함되어야한다는 것입니다.

관련 문제