해결된 질문
작성
·
120
·
수정됨
0
(5.4.3 기준)
14강까지 잘 달려오다가 15강에서 갑자기 오류가 뜹니다.
우선 14강까지 쓰던 프로젝트를 문제없이 그대로 써왔으며, 15강을 시작하기 앞서 이 프로젝트를 빌드를 통해 에디터가 켜지는것을 확인 후, 15강의 앞부분 c++코드를 따라하면서, 정확히
"7:42 까지 따라한 후, 즉 캐스팅코드 작성 이후 헤더까지 포함 시킨 후 바로 F5를 누르면 맨 아래와 같은 에러가 뜹니다.((바로 전 단계인 ABGameInterface.h 를 에디터에서 생성 후, 모두 로드를 클릭한 후에 그 즉시 f5를 눌러 문제없이 에디터가 켜지는 것을 재차 테스트하여 확인함)"
이후에 어떤 코드를 이어 써서 디버깅해도 같은 에러가 떠서 수강 진행이 막혀있는 상태입니다.
그래서 깃허브에서 올려주신 "UnrealProgrammingPart2-14" 도 받은 후 15강을 따라하면서 아까와 동일하게 매 코드작성마다 디버깅확인을 해봤더니, 이 파일 또한 정확히 7:42부분에
IABGameInterface* ABGameMode = Cast<IABGameInterface>(GetWorld()->GetAuthGameMode()); 코드를 작성 후, Interface/ABGameInterface.h 헤더를 포함시키고 그 즉시 F5를 하면 위와 동일한 상황에서 동일한 에러가 뜹니다.
근데 신기한건, 깃허브에 올려주신 "UnrealProgrammingPart2-15" 도 받아서 F5를 눌렀더니 이것은 문제 없이 에디터가 켜집니다. 어떤 차이가 있길래 이것은 켜지는걸까요...?
어떤 문제로 인해 저 시점에 아래와 같은 에러가 발생하는지 궁금합니다.
심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태 세부 정보
오류 MSB3073 "F:\UE_5.4\Engine\Build\BatchFiles\Build.bat ArenaBattleEditor Win64 Development -Project="C:\Users\qkrwo\Downloads\UnrealProgrammingPart2-14\UnrealProgrammingPart2-14\ArenaBattle.uproject" -WaitMutex -FromMsBuild -architecture=x64" 명령이 종료되었습니다(코드: 6). ArenaBattle C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.MakeFile.Targets 44
오류(활성) E1455 'override'로 선언된 멤버 함수는 기본 클래스 멤버를 재정의하지 않습니다. ArenaBattle F:\UE_5.4\Engine\Source\Runtime\Core\Public\Serialization\ArchiveProxy.h 157
오류(활성) E1455 'override'로 선언된 멤버 함수는 기본 클래스 멤버를 재정의하지 않습니다. ArenaBattle F:\UE_5.4\Engine\Source\Runtime\Core\Public\Serialization\ArchiveProxy.h 167
오류(활성) E0020 식별자 "FTextureBuildSettings"이(가) 정의되어 있지 않습니다. ArenaBattle F:\UE_5.4\Engine\Source\Runtime\Engine\Classes\Engine\Texture.h 2017
오류 C2027 정의되지 않은 형식 'AGameModeBase'을(를) 사용했습니다. ArenaBattle F:\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h 88
오류 C2338 static_assert failed: 'Attempting to cast between incomplete types' ArenaBattle F:\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h 88
오류 C2139 'AGameModeBase': 정의되지 않은 클래스는 컴파일러 내장 형식 특성 '__is_base_of'에 대한 인수로 사용할 수 없습니다. ArenaBattle C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\INCLUDE\type_traits 1298
오류 C2338 static_assert failed: 'Attempting to use Cast<> on a type that is not a UObject or an Interface' ArenaBattle F:\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h 135
답변 3
1
네 저도 해당 문제는 헤더 추가로 해결하는데, 컴파일 메커니즘에 좀 복잡하다 보니 프로젝트마다 다르게 인식 되는 경우가 있는 것 같아요.
아무래도 헤더를 추가하는 것이 안전하니 차후에 소스를 업데이트 하겠습니다
0
본문에서 발생한 에러는 ABStageGimmick.cpp 에
#include "GameFramework/GameModeBase.h" 를 삽입하니 정상화되었습니다.
0
안녕하세요, 인프런 AI 인턴입니다.
hush park님께서 언급하신 오류 메시지는 AGameModeBase
와 관련된 컴파일 문제입니다. 이 문제는 종종 헤더 파일 누락이나 프로젝트 설정과 관련하여 발생할 수 있습니다. 기본적인 접근 방법은 다음과 같습니다.
AGameModeBase
와 관련된 문제가 발생할 때는 해당 클래스와 관련된 헤더 파일이 포함되지 않았기 때문일 가능성이 큽니다. 따라서, GameModeBase
가 정의된 헤더 파일을 추가해보는 것이 좋습니다.
#include "GameFramework/GameModeBase.h"
프로젝트 설정에서 UObject
와 인터페이스
관련 설정이 올바른지 확인할 필요가 있습니다. 특히, 언리얼 엔진이 특정 버전 이상으로 업데이트된 경우에는 이전에 잘 작동하던 설정이 변경될 수 있습니다.
다른 엔진 버전 간의 변경점 때문에 생기는 문제일 수 있습니다. 이전 버전에서는 정상 작동하지만, 최신 버전에서는 문제가 발생할 수 있습니다. 문제 발생 시점과 해결된 프로젝트 간의 차이점을 인지하고 필요한 경우 같은 엔진 버전에서 작업을 진행해보세요.
비슷한 문제가 발생한 다른 사례를 통해 해결 방법을 알려드릴 수 있습니다. 아래 게시물들을 참고해서 유사한 문제를 해결한 방법을 참고해보세요:
이외에도 엔진 커뮤니티 또는 공식 문서를 참조하여 발생할 수 있는 일반적인 문제와 그에 대한 해결 방법을 찾아보실 것을 권장합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.