我的台式机上有 Ubuntu 20.04,配备旧的 i7 CPU 和 16 GiB RAM。
以下是我运行的编译 Unreal 4.27 的命令:
./Setup.sh
./GenerateProjectFiles.sh
make -j 4
make -j 4 ShaderCompileWorker
我必须尝试几次才能完成该过程。在之前的尝试中,机器内存不足,我不得不硬关机。似乎是使用 来make -j 4
尝试限制内核的使用,才让它完成。我将终端中编译读数的全文复制到一个文本文件中。最后一部分是这样的:
[86/105] Compile IPlatformFileSandboxWrapper.cpp
[87/105] Compile Module.VectorVM.gen.cpp
[88/105] Link (lld) libShaderCompileWorker-LauncherPlatform.so
[89/105] Compile Module.ShaderFormatOpenGL.cpp
[90/105] Compile Module.SlateFileDialogs.cpp
[91/105] Compile Module.VulkanShaderFormat.cpp
[72/72] UnrealBuildTool.exe CrashReportClient-Linux-Shipping.target
Total time in Local executor: 402.88 seconds
Total execution time: 789.38 seconds
[92/105] Link (lld) libShaderCompileWorker-VectorVM.so
[93/105] Compile Module.ShaderFormatVectorVM.cpp
[94/105] Link (lld) libShaderCompileWorker-DirectoryWatcher.so
[95/105] Link (lld) libShaderCompileWorker-SandboxFile.so
[96/105] Compile Module.ShaderCompileWorker.cpp
[97/105] Link (lld) libShaderCompileWorker-ShaderFormatOpenGL.so
[98/105] Link (lld) libShaderCompileWorker-Slate.so
[99/105] Link (lld) libShaderCompileWorker-ShaderFormatVectorVM.so
[100/105] Link (lld) libShaderCompileWorker-EditorStyle.so
[101/105] Link (lld) libShaderCompileWorker-TargetPlatform.so
[102/105] Link (lld) libShaderCompileWorker-SlateFileDialogs.so
[103/105] Link (lld) libShaderCompileWorker-VulkanShaderFormat.so
[104/105] Link (lld) ShaderCompileWorker
[105/105] UnrealBuildTool.exe ShaderCompileWorker.target
Total time in Local executor: 422.72 seconds
Total execution time: 809.24 seconds
kim@kim-MS-7917:~/3dDev/UnrealEngine-release$ make -j 4 ShaderCompileWorker
bash "/home/kim/3dDev/UnrealEngine-release/Engine/Build/BatchFiles/Linux/Build.sh" ShaderCompileWorker Linux Development
Fixing inconsistent case in filenames.
Setting up Mono
Running command : Engine/Binaries/DotNET/UnrealBuildTool.exe ShaderCompileWorker Linux Development
Using 'git status' to determine working set for adaptive non-unity build (/home/kim/3dDev/UnrealEngine-release).
Target is up to date
Total execution time: 0.68 seconds
但是,我转到 UnrealEngine/Engine/Binaries/Linux 文件夹,那里没有可执行文件。
可能相关吗?- 我尝试在克隆的存储库中执行此操作,当此操作无效时,我尝试在新文件夹中执行此操作,其中包含从 zip 下载中提取的文件。在这两种情况下,它都花了一个多小时来获取依赖项。
关于如何正确编译,有什么建议吗?
(顺便说一句,一位朋友使用相同的命令成功编译了 Unreal,只是 make -j 没有 4,并一直在指导我完成这个过程,但现在他被难住了。)
答案1
我们通过运行解决了该问题make -j 4 UE4Editor
。
我的朋友不需要单独编译 UE4Editor,但他必须为 ShaderCompileWorker 编译,因此他指示我也这样做。他也在使用 Ubuntu 20.04。