How to Specify Unreal Engine Source/Project Compiler Toolchain and SDK

Contrary to common sense, UnrealBuildTool does not use EPIC’s tested toolchain and SDK versions that the “Build farm compiles against” and instead uses “WindowsPlatform.DefaultToolChainVersion” and “WindowsPlatform.DefaultWindowsSdkVersion” by default. This may not be a good idea and may cause problems down the line.

Retargeting solution via Visual Studio does not change the SDK used.

To specify a specific toolchain(compiler) and SDK, you need to change two elements in BuildConfiguration.xml, located

Windows:

  • Engine/Saved/UnrealBuildTool/BuildConfiguration.xml
  • <USER>/AppData/Roaming/Unreal Engine/UnrealBuildTool/BuildConfiguration.xml
  • My Documents/Unreal Engine/UnrealBuildTool/BuildConfiguration.xml
  • <PROJECT_DIRECTORY>/Saved/UnrealBuildTool/BuildConfiguration.xml

On Linux and Mac, the following paths are used instead:

  • /Users/<USER>/.config//Unreal Engine/UnrealBuildTool/BuildConfiguration.xml
  • /Users/<USER>/Unreal Engine/UnrealBuildTool/BuildConfiguration.xml
  • <PROJECT_DIRECTORY>/Saved/UnrealBuildTool/BuildConfiguration.xml

Use the <PROJECT_DIRECTORY>/Saved/UnrealBuildTool/BuildConfiguration.xml directory for project-specific build configuration where <PROJECT_DIRECTORY> is the path to your project’s directory.

Edit the XML file to something that looks like this:

<?xml version="1.0" encoding="utf-8" ?>

<Configuration xmlns="https://www.unrealengine.com/BuildConfiguration">

<WindowsPlatform>
<CompilerVersion>14.38.33130</CompilerVersion>
<WindowsSdkVersion>10.0.18362.0</WindowsSdkVersion>
<!-- Replace version numbers with the ones you want -->
</WindowsPlatform>
</Configuration>

If you are not using an MSVC compiler, you need to specify ToolchainVersion too.
Links:
Tested Toolchain & SDK for UE 5.4
Build Configuration Info