본문 바로가기

개발 공부 기록/UnrealEngine5

[UE5 Error] MSB3073 (Code: 6) 빌드 에러 해결법

개요

실행환경 UE5.0.3 버전, VS 2022 버전인 경우에 C++ 클래스 추가 후 발생하는 프로젝트 에러 수정법에 대한 해결법 작성

 

본문

C++ 클래스를 생성한 후에 언리얼 엔진 에디터를 닫고 VS에서 빌드를 진행하는데 버그가 발생했다.

 

MSB3073은 진짜 자주 보이는 버그기도 해서 골치가 아프다.


보통 해당 버그가 발생했을 때는 간단하게 해결하는 방법이 프로젝트 폴더로 가서 Binaries, Intermediate 폴더와 .sln 파일을 제거 후,
uproject 파일을 우클릭하여 generate visual studio project files를 실행한 다음에
다시 .sln 파일을 통해 프로젝트를 열고 빌드를 하면 대부분 해결이 된다.

 

여기까지 진행해서 해결한다면 축하드립니다.

 

보통 이 경우 라이브 코딩과 관련되어서 버그가 발생하는 부분이기 때문에 이렇게 자주 진행해서 해결할 수 있게 된다.

그러나 이번에 발생한 버그는 이렇게 해도 해결이 되지 않는 상황이었다.
주목할 점은 위 에러에 보이는 "TStringConversion<TStringConvert<From, To>,128>" 부분..
이 부분과 관련되어서 5.0.3버전과 VS2022버전 사이에서 버그가 발생하는 것이다.

 

결국 답답하면 내가 뛰어야지 하고 cmd를 킨 다음, 콘솔창에 나와있던 명령어를 직접 실행해주었다.

 

 

중간 부분을 보면
"Building ObstacleAssault..." 문장 아래에
Using Visual Studio 2022 14.41.34123 toolchain 부분을 확인할 수 있다.
이는 현재 사용되고 있는 비주얼 스튜디오 2022 버전의 툴체인 버전을 의미하는데
실행 환경인 언리얼 엔진 5.0.3 버전에서는 엔진 버그로 인해서 14.38 아래로 다운그레이드를 해주어야 한다.

 

언리얼 엔진과 Visual Studio를 사용하면 수도없이 볼 인스톨러

 

Visual Studioo Installer를 실행한다음 개별 구성 요소에서 "msvc x64 14.38"을 입력 후 설치가 되어 있지 않다면 빌드 도구를 설치한다.

 

그 후 폴더 주소 경로에 %APPDATA%\Unreal Engine\UnrealBuildTool 로 이동하면 BuildConfiguration.xml 파일이 존재한다.

 

 

해당 파일을 우클릭하여 메모장을 열고 아래의 내용을 복사하여 붙여넣기 한다.

 

<?xml version="1.0" encoding="utf-8" ?>
<Configuration xmlns="https://www.unrealengine.com/BuildConfiguration">
<WindowsPlatform>
       <CompilerVersion>14.38.33130</CompilerVersion>
    </WindowsPlatform>
</Configuration>


윈도우 플랫폼의 컴파일러 버전을 고정하는 것이다.
(주의 : 해당 14.38.33130은 컴파일러 버전이기 때문에 아래 예시로 나오는 14.38.17.8를 넣는게 아님)

 

그 다음 C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\14.38.17.8 로 이동하여

txt파일을 한번 실행시킨다. (해당 경로는 본인의 Visual Studio가 설치된 경로에 따라 달라질 수 있다.)

 

 

그 후 위에 적었던 대로 다시 프로젝트 폴더로 돌아와서

Binaries, Intermediate 폴더와 .sln 파일을 제거한 후,

uproject 파일 우클릭으로 다시 generate visual studio project files를 실행하고

빌드를 하면 해결된다.

 

이거 보려고 새벽에 3시간은 삽질한거 같다.

 

 

추가로
C++ 클래스를 추가했는데 아래와 같이 C++ 클래스 폴더가 보이지 않는다면

 

 

아래와 같이 상단의 Development Editor가 아니라 Development로 되어있을 수도 있으니
Development Editor로 변경 후 다시 빌드를 하고 에디터를 실행하면 제대로 동작할 것이다.