UnrealBuildTool(UBT)의 상세 로그를 내고 동작을 조사하자
4238 단어 위 4UnrealEngineUnrealEngine4
가장자리 아래의 힘 UBT
UE4의 컴파일을 통괄하는 툴이 UnrealBuildTool입니다.
빌드가 필요한지 판단하고 빌드를 실시하거나, 사전 처리를 자동으로 해 주거나 여러가지 처리를 실시하고 있습니다.
매우 중요한 도구이지만, 잘 할 때는 가장자리 아래의 힘있는 별로 의식하지 않아도 좋은 도구이기도합니다.
그러나 어떤 경우에는 의도대로 움직이지 않을 수 있습니다.
자세한 로그를 작성하여 동작을 확인합시다.
표준의 설정에서는 UBT는 그다지 많은 것을 로그에 출력하지 않습니다만, 소스를 보면 상당히 많이 로그를 출력해 주게 되어 있는 것을 알 수 있습니다.
public UEBuildModuleCPP(ModuleRules Rules, DirectoryReference IntermediateDirectory, DirectoryReference GeneratedCodeDirectory)
: base(Rules)
{
this.IntermediateDirectory = IntermediateDirectory;
this.GeneratedCodeDirectory = GeneratedCodeDirectory;
foreach (string Def in PublicDefinitions)
{
Log.TraceVerbose("Compile Env {0}: {1}", Name, Def);
}
foreach (string Def in Rules.PrivateDefinitions)
{
Log.TraceVerbose("Compile Env {0}: {1}", Name, Def);
}
UBT는 Editor와 마찬가지로 Verbosity 설정을 가지고 있으며, 이것을 변경하면 더 자세한 로그를 얻을 수 있습니다.
활성화하려면 VisualStudio의 시작 프로젝트(BlueprintProject의 경우 UE4, C++Project의 경우 프로젝트)의 속성을 열고 NMake->Build Command Line/Rebuild Command Line 에 -Verbose
를 추가합니다.
대량의 로그가 출력되어 빌드 시간이 불필요하게 걸린다고 생각하므로, 불필요한 때는 지워 주세요.
추가: 또 다른 방법 ~ Build.bat 편집
위의 솔루션의 속성에서 볼 수 있듯이 빌드는 Engine\Build\BatchFiles.Build.bat를 호출하여 시작됩니다.
이 배치 파일 중에 옵션을 더해 버리는 것도 물론 상세 로그를 얻을 수 있습니다.
다음과 같이 UBT를 시작하는 줄 끝에 -verbose
를 추가합니다.
Engine\Build\Batchfiles\Build.batIF EXIST ..\..\Engine\Binaries\DotNET\UnrealBuildTool.exe (
..\..\Engine\Binaries\DotNET\UnrealBuildTool.exe %* -verbose
popd
REM Ignore exit codes of 2 ("ECompilationResult.UpToDate") from UBT; it's not a failure.
if "!ERRORLEVEL!"=="2" (
EXIT /B 0
Reference
이 문제에 관하여(UnrealBuildTool(UBT)의 상세 로그를 내고 동작을 조사하자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/EGJ-Takashi_Suzuki/items/b2134bee42afaf2db766
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
public UEBuildModuleCPP(ModuleRules Rules, DirectoryReference IntermediateDirectory, DirectoryReference GeneratedCodeDirectory)
: base(Rules)
{
this.IntermediateDirectory = IntermediateDirectory;
this.GeneratedCodeDirectory = GeneratedCodeDirectory;
foreach (string Def in PublicDefinitions)
{
Log.TraceVerbose("Compile Env {0}: {1}", Name, Def);
}
foreach (string Def in Rules.PrivateDefinitions)
{
Log.TraceVerbose("Compile Env {0}: {1}", Name, Def);
}
IF EXIST ..\..\Engine\Binaries\DotNET\UnrealBuildTool.exe (
..\..\Engine\Binaries\DotNET\UnrealBuildTool.exe %* -verbose
popd
REM Ignore exit codes of 2 ("ECompilationResult.UpToDate") from UBT; it's not a failure.
if "!ERRORLEVEL!"=="2" (
EXIT /B 0
Reference
이 문제에 관하여(UnrealBuildTool(UBT)의 상세 로그를 내고 동작을 조사하자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/EGJ-Takashi_Suzuki/items/b2134bee42afaf2db766텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)