I am on the same boat, but I am using binary build instead of source code.
I have successfully made Clang work on Windows, using Clang as the compiler and MSVC as the toolchain. I did not try to use MinGW GCC toolchain because Epic Games did not build against it on Windows, I don’t know if it is recommended.
† Clang compiler only:
This is my BuildConfiguration.xml:
<?xml version="1.0" encoding="utf-8" ?>
<Configuration xmlns="https://www.unrealengine.com/BuildConfiguration">
<WindowsPlatform>
<Compiler>Clang</Compiler>
<CompilerVersion>Latest</CompilerVersion>
<Toolchain>VisualStudio2022</Toolchain>
<ToolchainVersion>14.34.31933</ToolchainVersion>
</WindowsPlatform>
<ProjectFileGenerator>
<Format>VisualStudioCode</Format>
</ProjectFileGenerator>
</Configuration>
The last part <ProjectFileGenerator>
is not necessary, it just makes UnrealBuildTool
run -Mode=VSCode
when you click “Generate Visual Studio project files” from the context menu on your .uproject
in Explorer.
There are 3 XML files in 3 different directories (each serve a purpose) to choose from to setup Clang as the compiler in BuildConfiguration.xml:
- %appdata%\Unreal Engine\UnrealBuildTool\
- YourProjectDirectory\Saved\UnrealBuildTool\
- %username%\Documents\Unreal Engine\Saved\UnrealBuildTool\ (This one is unique to source builds, it does not exist for binary UE – also not sure if the directory is correct)
† The correct Clang version must be installed to avoid compiling issues/errors. Check your Unreal Engine version, and follow the documentation in the link below and change the version of UE in the page (on the left side) according to your UE version. (the link is set to open to the latest version)
Documentation: Use Clang to Build Microsoft Platforms in Unreal Engine | Unreal Engine 5.5 Documentation | Epic Developer Community
† Clangd: (Clang intellisense engine)
After that, you need to run -Mode=GenerateClangDatabase
in CMD using UnrealBuildTool.exe to make clangd work.
Directory: C:\Program Files\Epic Games\UE_5.3\Engine\Binaries\DotNET\UnrealBuildTool
† This generates the necessary compile_commands.json
clangd: https://clangd.llvm.org/
clangd installation: Getting started
A thread on UE forums of many users trying to make clangd work: Get compile_commands.json
@dzemzmcdonalda found out that -Mode=GenerateClangDatabase
is not incremental: UBT GenerateClangDatabase is NOT incremental and recreates whole compile_commands.json each time
Assuming you want to use VS Code with clangd: https://www.youtube.com/watch?v=JxfNn5DYG_o
At this point, it just takes too much time to setup and maintain. I just reverted back to MSVC. I wish I can continue down with LLVM road, but it is not intuitive.
Let me know what happens, I am still interested in it.
If only Epic Games can make a complete guide on how to correctly setup and use Clang on all platforms, since I believe they use Clang themselves. And if it is possible to use Clang on Windows without MSVC toolchain.
† NOTE: To compile your project with Clang only, you don’t have to follow the Clangd steps.
† Since this is the first result on search engines, further clarifications were added.
† 2025 edits marked by dagger symbol.