[컴파일에러] C2054 에러 발생 경우2015. 8. 12. 18:01
C++ 에서
; 앞에 ~가 없습니다
형식지정자가 없습니다 ~기본 int를 지원하지 않습니다
등의 에러가 나오면
그 에러가 뜬 부분을 클릭하여
해당 클래스와 에러가 관계되는 클래스에 들어가서
서로 클래스 포함이 교차되지 않았는지 확인해보길 바랍니다!
ex)
A 클래스를 만들었다
B 클래스를 만들었다
1.
A 클래스에 B 클래스를 포함하였다
B 클래스에는 A 클래스를 포함하지 않았다
=> 에러안남
2.
A 클래스에 B 클래스를 포함하였다
B 클래스에 A 클래스를 포함하였다
=> 에러남
★원인
A.cpp 파일에는 A.h 가 포함되어있다.
소스를 읽는 와중에 B.h 를 발견했다.
그럼 B.h 를 포함시키기 위해 B.h 로 들어간다
근데 여기에 또 A.h 가 있다
??????? 아직 컴파일러는 A.h 를 다 읽지 않은 상태이고,
#pragma once 로 인해 헤더파일은 단 한번밖에 읽을 수 없는데
교차했기 때문에 컴파일러는 A 클래스를 없는 클래스로 인식하여 에러를 띄운다.
이렇게 하지 않았는데도 간혹 같은 에러가 뜨는 경우가 있는데
그때는 간접적으로 서로 교차된 것이니 확인해볼것!
http://ekessy.tistory.com/20
여기 게시물을 보고 이해하여 제가 빠르게 이해할 수 있도록 정리한 것입니다
만약 서로 교차가 필요할 경우엔, 이 곳에서 확인!
'[에러정리]' 카테고리의 다른 글
[Unity/Max3D] ImportFBX Errors: Time range (447394) for scale curve(s) on node 'bone name' on take 'animation clip name' larger than maximum allowed (100000). (0) | 2017.08.31 |
---|---|
[Unity 컴파일 에러] InitializeUnityExtensions: Must have a valid path for plugin[n] (0) | 2017.08.29 |
[런타임에러] 무한루프 일어날 경우 (0) | 2016.01.14 |
[컴파일에러] LNK2001 에러 없애는 법 (static) (3) | 2015.08.17 |
[컴파일에러] LNK1129, LNK2019 해결법 (0) | 2015.07.14 |