인프런 커뮤니티 질문&답변

조원익님의 프로필 이미지
조원익

작성한 질문수

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

언리얼5.4에서 빌드오류가 발생합니다.

해결된 질문

작성

·

330

0

이번에 깃허브에 올려주신 언리얼엔진5.4버전으로 빌드 후 실행할려고 하는데 계속 오류가 발생합니다.

 

LogInit: Warning: Incompatible or missing module: ArenaBattle

Running C:/UE5/UE_5.4/Engine/Build/BatchFiles/Build.bat Development Win64 -Project="H:/Unreal Project/MyGame/UnrealProgrammingPart2-15/ArenaBattle.uproject" -TargetType=Editor -Progress -NoEngineChanges -NoHotReloadFromIDE

Using bundled DotNet SDK version: 6.0.302

Running UnrealBuildTool: dotnet "..\..\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll" Development Win64 -Project="H:/Unreal Project/MyGame/UnrealProgrammingPart2-15/ArenaBattle.uproject" -TargetType=Editor -Progress -NoEngineChanges -NoHotReloadFromIDE

Log file: C:\Users\cwi02\AppData\Local\UnrealBuildTool\Log.txt

Creating makefile for ArenaBattleEditor (no existing makefile)

@progress push 5%

Parsing headers for ArenaBattleEditor

Running Internal UnrealHeaderTool "H:\Unreal Project\MyGame\UnrealProgrammingPart2-15\ArenaBattle.uproject" "H:\Unreal Project\MyGame\UnrealProgrammingPart2-15\Intermediate\Build\Win64\ArenaBattleEditor\Development\ArenaBattleEditor.uhtmanifest" -WarningsAsErrors -installed

Total of 76 written

Reflection code generated for ArenaBattleEditor in 2.0740478 seconds

@progress pop

Building ArenaBattleEditor...

Using Visual Studio 2022 14.38.33140 toolchain (C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130) and Windows 10.0.22621.0 SDK (C:\Program Files (x86)\Windows Kits\10).

[Adaptive Build] Excluded from ArenaBattle unity file: ArenaBattle.cpp, ABAIController.cpp, BTDecorator_AttackInRange.cpp, BTService_Detect.cpp, BTTask_Attack.cpp, BTTask_FindPatrolPos.cpp, BTTask_TurnToTarget.cpp, ABAnimInstance.cpp, AnimNotify_AttackHitCheck.cpp, ABCharacterBase.cpp, ABCharacterControlData.cpp, ABCharacterNonPlayer.cpp, ABCharacterPlayer.cpp, ABComboActionData.cpp, ABCharacterStatComponent.cpp, ABGameMode.cpp, ABGameSingleton.cpp, ABStageGimmick.cpp, ABAnimationAttackInterface.cpp, ABCharacterAIInterface.cpp, ABCharacterHUDInterface.cpp, ABCharacterItemInterface.cpp, ABCharacterWidgetInterface.cpp, ABGameInterface.cpp, ABItemBox.cpp, ABItemData.cpp, ABPotionItemData.cpp, ABScrollItemData.cpp, ABWeaponItemData.cpp, ABPlayerController.cpp, ABSaveGame.cpp, ABFountain.cpp, ABCharacterStatWidget.cpp, ABHpBarWidget.cpp, ABHUDWidget.cpp, ABUserWidget.cpp, ABWidgetComponent.cpp

Determining max actions to execute in parallel (6 physical cores, 6 logical cores)

Executing up to 6 processes, one per physical core

Using Parallel executor to run 43 action(s)

------ Building 43 action(s) started ------

[1/43] Resource Default.rc2

[2/43] Compile [x64] SharedPCH.UnrealEd.Project.ValApi.Cpp20.cpp

[3/43] Compile [x64] ABCharacterAIInterface.cpp

[4/43] Compile [x64] ABAnimationAttackInterface.cpp

[5/43] Compile [x64] ABCharacterControlData.cpp

[6/43] Compile [x64] ABCharacterHUDInterface.cpp

[7/43] Compile [x64] ABAnimInstance.cpp

[8/43] Compile [x64] ABCharacterItemInterface.cpp

[9/43] Compile [x64] ABAIController.cpp

[10/43] Compile [x64] ABCharacterStatComponent.cpp

[11/43] Compile [x64] ABCharacterWidgetInterface.cpp

[12/43] Compile [x64] ABCharacterBase.cpp

[13/43] Compile [x64] ABCharacterNonPlayer.cpp

[14/43] Compile [x64] ABComboActionData.cpp

[15/43] Compile [x64] ABCharacterStatWidget.cpp

[16/43] Compile [x64] ABFountain.cpp

[17/43] Compile [x64] ABGameInterface.cpp

[18/43] Compile [x64] ABCharacterPlayer.cpp

C:\UE5\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h(88): error C2027: 정의되지 않은 형식 'AGameModeBase'을(를) 사용했습니다.

C:\UE5\UE_5.4\Engine\Source\Runtime\Engine\Classes\Engine\GameInstance.h(29): note: 'AGameModeBase' 선언을 참조하십시오.

C:\UE5\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h(88): note: 템플릿 인스턴스화 컨텍스트(가장 오래된 인스턴스화 컨텍스트)가

H:\Unreal Project\MyGame\UnrealProgrammingPart2-15\Source\ArenaBattle\Character\ABCharacterPlayer.cpp(89): note: 컴파일되는 함수 템플릿 인스턴스화 'To Cast<IABGameInterface,AGameModeBase>(From )'에 대한 참조를 확인하세요.

with

[

To=IABGameInterface,

From=AGameModeBase

]

C:\UE5\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h(88): error C2338: static_assert failed: 'Attempting to cast between incomplete types'

C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\INCLUDE\type_traits(1298): error C2139: 'AGameModeBase': 정의되지 않은 클래스는 컴파일러 내장 형식 특성 '__is_base_of'에 대한 인수로 사용할 수 없습니다.

C:\UE5\UE_5.4\Engine\Source\Runtime\Engine\Classes\Engine\GameInstance.h(29): note: 'AGameModeBase' 선언을 참조하십시오.

C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\INCLUDE\type_traits(1298): note: 템플릿 인스턴스화 컨텍스트(가장 오래된 인스턴스화 컨텍스트)가

C:\UE5\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h(135): note: 컴파일되는 변수 템플릿 'const bool is_base_of_v<UObject,AGameModeBase>'에 대한 참조를 확인하세요.

C:\UE5\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h(135): error C2338: static_assert failed: 'Attempting to use Cast<> on a type that is not a UObject or an Interface'

[19/43] Compile [x64] ABGameMode.cpp

[20/43] Compile [x64] ABGameSingleton.cpp

[21/43] Compile [x64] ABItemData.cpp

[22/43] Compile [x64] ABPotionItemData.cpp

[23/43] Compile [x64] ABHUDWidget.cpp

[24/43] Compile [x64] ABSaveGame.cpp

[25/43] Compile [x64] ABHpBarWidget.cpp

[26/43] Compile [x64] ABItemBox.cpp

[27/43] Compile [x64] ABScrollItemData.cpp

[28/43] Compile [x64] ABPlayerController.cpp

[29/43] Compile [x64] ABWeaponItemData.cpp

[30/43] Compile [x64] ABStageGimmick.cpp

C:\UE5\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h(88): error C2027: 정의되지 않은 형식 'AGameModeBase'을(를) 사용했습니다.

C:\UE5\UE_5.4\Engine\Source\Runtime\Engine\Classes\Engine\GameInstance.h(29): note: 'AGameModeBase' 선언을 참조하십시오.

C:\UE5\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h(88): note: 템플릿 인스턴스화 컨텍스트(가장 오래된 인스턴스화 컨텍스트)가

H:\Unreal Project\MyGame\UnrealProgrammingPart2-15\Source\ArenaBattle\Gimmick\ABStageGimmick.cpp(198): note: 컴파일되는 함수 템플릿 인스턴스화 'To Cast<IABGameInterface,AGameModeBase>(From )'에 대한 참조를 확인하세요.

with

[

To=IABGameInterface,

From=AGameModeBase

]

C:\UE5\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h(88): error C2338: static_assert failed: 'Attempting to cast between incomplete types'

C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\INCLUDE\type_traits(1298): error C2139: 'AGameModeBase': 정의되지 않은 클래스는 컴파일러 내장 형식 특성 '__is_base_of'에 대한 인수로 사용할 수 없습니다.

C:\UE5\UE_5.4\Engine\Source\Runtime\Engine\Classes\Engine\GameInstance.h(29): note: 'AGameModeBase' 선언을 참조하십시오.

C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\INCLUDE\type_traits(1298): note: 템플릿 인스턴스화 컨텍스트(가장 오래된 인스턴스화 컨텍스트)가

C:\UE5\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h(135): note: 컴파일되는 변수 템플릿 'const bool is_base_of_v<UObject,AGameModeBase>'에 대한 참조를 확인하세요.

C:\UE5\UE_5.4\Engine\Source\Runtime\CoreUObject\Public\Templates\Casts.h(135): error C2338: static_assert failed: 'Attempting to use Cast<> on a type that is not a UObject or an Interface'

[31/43] Compile [x64] ArenaBattle.cpp

[32/43] Compile [x64] AnimNotify_AttackHitCheck.cpp

[33/43] Compile [x64] ABUserWidget.cpp

[34/43] Compile [x64] ABWidgetComponent.cpp

[35/43] Compile [x64] BTTask_Attack.cpp

[36/43] Compile [x64] BTDecorator_AttackInRange.cpp

[37/43] Compile [x64] BTService_Detect.cpp

[38/43] Compile [x64] BTTask_TurnToTarget.cpp

[39/43] Compile [x64] BTTask_FindPatrolPos.cpp

[40/43] Compile [x64] Module.ArenaBattle.cpp

Total time in Parallel executor: 62.75 seconds

Total execution time: 70.98 seconds

LogInit: Warning: Still incompatible or missing module: ArenaBattle

LogCore: Engine exit requested (reason: EngineExit() was called)

LogExit: Preparing to exit.

LogXGEController: Cannot use XGE Controller as Incredibuild is not installed on this machine.

LogXGEController: Cleaning working directory: C:/Users/cwi02/AppData/Local/Temp/UnrealXGEWorkingDir/

LogPakFile: Destroying PakPlatformFile

LogExit: Exiting.

 

답변 2

0

이득우님의 프로필 이미지
이득우
지식공유자

헛 확인했을 때 이상 없었는데, 현재 두 소스코드에서 GameModeBase클래스를 못 찾네요.
수정했으니 다시 받아보시겠어요?
제보 감사합니다.

조원익님의 프로필 이미지
조원익
질문자

해결되었습니다. 감사합니다

0

안녕하세요, 인프런 AI 인턴입니다.

조원익 님의 언리얼5.4에서 빌드 오류 문제는 언리얼 엔진 버전 업그레이드에 따른 호환성 문제로 보입니다. 특히, 질문에 언급된 오류 메시지 LogInit: Warning: Incompatible or missing module: ArenaBattle는 언리얼 엔진 버전 업데이트 후 프로젝트 모듈이 더 이상 호환되지 않거나, 필요한 모듈을 찾을 수 없음을 나타냅니다. 이는 주로 프로젝트가 참조하는 모듈이나 플러그인이 새 버전의 엔진과 호환되지 않을 때 발생합니다.

이러한 문제를 해결하기 위해 적용해볼 수 있는 몇 가지 일반적인 방법은 다음과 같습니다:

  1. 모듈과 플러그인의 호환성 확인: 프로젝트에서 사용 중인 모듈과 플러그인이 최신 언리얼 엔진 버전과 호환되는지 확인하세요. 개발자 공식 문서나 플러그인 제공 페이지에서 최신 정보를 찾을 수 있습니다.

  2. 프로젝트 파일 재생성: 프로젝트 폴더 내에서 .uproject 파일을 마우스 오른쪽 버튼으로 클릭하고 Generate Visual Studio project files 옵션을 선택하여 프로젝트 파일을 재생성합니다. 이 과정에서 호환되지 않는 부분을 엔진이 자동으로 수정하려고 시도할 수 있습니다.

  3. 코드의 직접 수정: 때로는 엔진의 API가 변경되어 코드를 직접 업데이트해야 할 수도 있습니다. 오류 메시지에서 제공하는 정보를 바탕으로 관련 코드를 수정하세요.

  4. 언리얼 엔진 공식 문서 및 커뮤니티: 언리얼 엔진의 공식 문서(Unreal Engine Documentation) 또는 언리얼 엔진 커뮤니티 포럼(Unreal Engine Forums)에서 문제에 대한 해결책을 찾을 수 있는 경우가 많습니다. 특히, 새로운 엔진 버전에서 발생하는 일반적인 문제와 이에 대한 해결책이 공유됩니다.

현재 저희 데이터베이스에는 언리얼5.4 버전에 대한 구체적인 문제 해결 방법이 없습니다. 상기 방법들로 문제 해결이 어렵다면, 언리얼 엔진 공식 커뮤니티나 문의를 통해 추가적인 지원을 받는 것이 좋습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

조원익님의 프로필 이미지
조원익

작성한 질문수

질문하기