2013-01-10 3 views
1

을 인식하지 :Visual Studio에서 나는 오류가 계속 특정 클래스

error C2146: syntax error : missing ';' before identifier 'mCameraFrame' 

을 코드의 라인 :

Frame mCameraFrame; 

그래서 분명히 내 프레임 클래스는 어떻게 든 발견되지 않습니다. 이 파일에 직접 포함 된 frame.h 헤더 파일 (Frame 클래스를 정의 함)이 있습니다. 왜 Visual Studio는 그것을 인식하지 못합니까?

+5

이 줄 앞에있는 코드에서 오류가 발생하는 것은 거의 확실합니다. 예를 들어, 이전에 줄에';'또는'}'가 없으면이를 수행 할 수 있습니다. –

+3

누락 된 문자가 .h 파일에 있으면 특히 까다 롭습니다. –

답변

3

오류는 이전 코드 줄에서, 아마도 헤더 파일에서 발생할 수 있습니다. 예를 들어

:

struct foo 
{ 
    int a; 
} 

Frame mCameraFrame; 

주목하라 } 후 누락 된 ;? 이로 인해 Frame이 구조의 인스턴스로 합법적이되었지만 mCameraFrame 앞에 ;이 누락되어보고 한 오류가 발생했습니다. 그것은 완벽하게 합법적 후 오는 Frame 때문에, 거기에 하나있을 해야하는 알 수있는 방법이 없기 때문에

컴파일러는 } 후 누락 된 ;를보고 할 수 없습니다.

누락 된 ; 또는 누락 된 }은 실제 문제보다 몇 줄 늦게보고되는 오류가 발생하는 경우가 종종 있습니다. 그 중 일부는 수백 개에 이르는 경우가 있습니다.

+0

누락 된 세미콜론은 없습니다. 나는이 코드를 계속해서 반복적으로 검색했다. – xcdemon05

+1

그런 다음 문제를 복제하기에 충분한 최소 코드 예제를 게시하십시오. (또한 'Frame'의 정의가 어떻게 든 포함되지 않을 수도 있습니다.) –

+3

순환 포함 종속성으로 인해 이와 같은 문제가 발생할 수 있습니다. –

0

피규어 관심있는 사람에게 다시보고합니다. 문제는 mCameraFrame을 정의해야하는 Frame 클래스가 다른 네임 스페이스에 있었기 때문에 "네임 스페이스를 사용합니다 ...."라고했습니다. 도! : P

관련 문제