1 Востаннє редагувалося tchort (04.04.2021 21:17:32)

Тема: [Unreal Engine 4] Проблеми і Помилки: Компіляція та установка.

Маю цю дивну помилку при компіляції:

[2732/2782] Link (lld) libUE4Editor-UE4Game.so
[2733/2782] Copy libtbb.so.2
make: *** [Makefile:1008: UE4Editor] Error 6

Повідомлення, м'яко кажучи - малоінформативне.
Версія UE 4.26. ОС: Manjaro 5.9.16-1-MANJARO x86_64 GNU/Linux. Версія make: GNU Make 4.3.

При чому код "Error 6" значить:

6    The shell line was longer than the command processor allowed.

http://www.opussoftware.com/manual/appendices/B1.htm

Біс знає що робити, - може шановні пани мають рішення. Дуже був би вдячний.

    *Сама думка про те що доведеться чекати знову годинами ре-компіляції діє пригнічуючи. (Моє пластикове відро гальмує при цьому просто чудовим чином. Майже весь час компіляції.)

Відправив повідомлення з проханням про допомогу на https://answers.unrealengine.com/ - все ще чекаю на "The question is waiting approval by a moderator." - сама гілка при цьому виглядає не дуже активною.

2 Востаннє редагувалося koala (04.04.2021 22:38:19)

Re: [Unreal Engine 4] Проблеми і Помилки: Компіляція та установка.

Повідомлення досить інформативне.
make формує і запускає довжелезні рядки на кшталт (приклад абсолютно умовний, просто для демонстрації причини довжини)

link -a /usr/lib/ten/more/subdirectories/filename /usr/lib/ten/more/subdirectories/other_filename -b /usr/lib/ten/more/subdirectories/one_more_filename ...

Якщо вам не показується, що саме виконує make - гляньте тут.

Один із цих рядків виявився надто довгим для командної оболонки (shell). Можливо, в Manjaro хтось чомусь вирішив зменшити ліміт (перевірте командою

getconf ARG_MAX

має бути 128K чи щось таке).
Додаткова деталь - довжина рядка обчислюється після обробки її shell-ом, тобто підставляння усіх змінних, розкриття wildcards і т.д.
Поки що я б припустив, що ви намагаєтеся збирати це все у надто глибокій теці в ієрархії, тому підставляння в ім'я кожного файлу повного шляху призводить до цієї помилки. Спробуйте іншу теку, з коротшим шляхом.

Подякували: 0xDADA11C7, tchort, leofun013

3 Востаннє редагувалося tchort (05.04.2021 05:50:21)

Re: [Unreal Engine 4] Проблеми і Помилки: Компіляція та установка.

Окремо дякую. Ніколи б не подумав що таке можливо. - тека буквально в /home/tom/bin/unreal. -Все їх скріпти. Буду виправляти.

4

Re: [Unreal Engine 4] Проблеми і Помилки: Компіляція та установка.

Прихований текст

Дякую - дієслово і не узгоджується з прикметником "окреме", хіба що з прислівником "окремо".

5 Востаннє редагувалося tchort (05.04.2021 07:52:09)

Re: [Unreal Engine 4] Проблеми і Помилки: Компіляція та установка.

Щодо проблеми - є якесь рішення яке не вимагало б редагування вихідного коду і відповідно рекомпіляції ядра Linux?
Згадано якесь рішення ще з загортанням команд шел-скриптів - але торкатися тих десятків кілобайтів скриптів від EpicGames - не дуже надихаюче рішення. Залишу це як план Б поки.

Якась дивна річ з цим ARG_MAX

Прихований текст
$ pwd
/home/tchort/bins/UnrealEngine-release
$ getconf ARG_MAX
2097152

але

$ grep ARG_MAX /usr/include/linux/limits.h 
#define ARG_MAX       131072    /* # bytes of args + environ for exec() */
$ make -n
bash "/home/tchort/bins/UnrealEngine-release/Engine/Build/BatchFiles/Linux/Build.sh" CrashReportClient Linux Shipping  
bash "/home/tchort/bins/UnrealEngine-release/Engine/Build/BatchFiles/Linux/Build.sh" CrashReportClientEditor Linux Shipping  
bash "/home/tchort/bins/UnrealEngine-release/Engine/Build/BatchFiles/Linux/Build.sh" ShaderCompileWorker Linux Development  
bash "/home/tchort/bins/UnrealEngine-release/Engine/Build/BatchFiles/Linux/Build.sh" UnrealLightmass Linux Development  
bash "/home/tchort/bins/UnrealEngine-release/Engine/Build/BatchFiles/Linux/Build.sh" UnrealFrontend Linux Development  
bash "/home/tchort/bins/UnrealEngine-release/Engine/Build/BatchFiles/Linux/Build.sh" UE4Editor Linux Development  
bash "/home/tchort/bins/UnrealEngine-release/Engine/Build/BatchFiles/Linux/Build.sh" UnrealInsights Linux Development

6

Re: [Unreal Engine 4] Проблеми і Помилки: Компіляція та установка.

Це різні ARG_MAX. Цілком можливо, що пов'язані (наприклад, другий є внутрішнім обмеженням для першого).
Що ж до make - доведеться розкривати скріпити, поки не дістанетеся до команди, що падає.

7 Востаннє редагувалося tchort (05.04.2021 09:31:23)

Re: [Unreal Engine 4] Проблеми і Помилки: Компіляція та установка.

Малоймовірно що має відношення але... Є вірогідність того що в мене тоді вільна RAM закінчилась? (Ліг спати, за показниками не слідкував). (з 8 вільно 5.6Гб - 2Гб на відеопам'ять.)
swap файл додати/увімкнути - є сенс?

* - клятий інсталлер скрипт - ну звісно, навіщо перевіряти чи є на моїй машині clang точно тієї ж версії - ні, завантажуй ще гігабайти мотлоху.
** - минула невдала спроба компіляції відкусила ~80Gb вільного місця на моєму SSD в 256гб...

Подякували: leofun011

8

Re: [Unreal Engine 4] Проблеми і Помилки: Компіляція та установка.

Прихований текст

вірогідність означає 100% імовірність, певну подію. "Гідну віри", так.

Повідомлення все ж таки про іншу помилку, там у переліку є і про проблеми з пам'яттю.
Своп бажано тримати в будь-якому разі, він не лише надає запас на випадок нестачі, а й сприяє дефрагментації.

make -n лише показує список того, що make хоче зробити - і в цьому випадку це абсолютно неінформативно, бо невідомо, котрий зі скриптів падає.
спробуйте

make V=1 --trace
Подякували: leofun01, tchort2

9 Востаннє редагувалося tchort (06.04.2021 08:51:04)

Re: [Unreal Engine 4] Проблеми і Помилки: Компіляція та установка.

Компіляція пройшла успішно. Початок компіляції в 0:54 кінець 7:10.
Ймовірно зірки сформували правильний візерунок пінгвіна десь в нашій галактиці.
    Причини успіху і провалу досі невідомі. Раніше досвіду побудови таких гігантських речей не було.
Рапортую, на випадок якщо комусь буде якоїсь користь від того ->

Зміни:
    Створено swap файл 8Гб на іншому розділі.
    Теку перейменовано в "UE4" з "UnrealEngine-release"
    Запущено, цього разу, make з рекомендованим(паном koala) параметрами.
    Звільнено трохи місця на SSD - зараз вільно ~8gb, після попередньої невдалої спроби було ~1.4gb.
        збудована система займає місця:

$ du -h -s
81G     .

_це всі зміни що були зроблені_

Після побудови UE4Editor запустився корректно (ще генерував кеш та компілював шейдери ~40min. & ~1gb sdd space)
Проблем не виникло. Повідомлення про помилки були відсутні. Частина (зріз перед "проблемними етапами") виводу з терміналу було збережено:

Прихований текст
#...........CUT........................
#     ALL GOOD HERE
#...........CUT........................
[231/241] Link (lld) libUnrealFrontend-LinuxServerTargetPlatform.so
[232/241] Link (lld) libUnrealFrontend-TextureFormatASTC.so
[233/241] Link (lld) libUnrealFrontend-LinuxNoEditorTargetPlatform.so
[234/241] Link (lld) libUnrealFrontend-LinuxClientTargetPlatform.so
[235/241] Link (lld) libUnrealFrontend-LinuxAArch64NoEditorTargetPlatform.so
[236/241] Link (lld) libUnrealFrontend-LinuxAArch64ClientTargetPlatform.so
[237/241] Link (lld) libUnrealFrontend-LinuxAArch64ServerTargetPlatform.so
[238/241] Link (lld) libUnrealFrontend-TextureFormatPVR.so
[239/241] Link (lld) libUnrealFrontend-TextureFormatUncompressed.so
[240/241] Link (lld) libUnrealFrontend-SlateReflector.so
[241/241] UnrealBuildTool.exe UnrealFrontend.target
Total time in Local executor: 1043.20 seconds
Total execution time: 1048.05 seconds
Makefile:1008: target 'UE4Editor' does not exist
bash "/home/tom/bins/UE4/Engine/Build/BatchFiles/Linux/Build.sh" UE4Editor Linux Development  
Fixing inconsistent case in filenames.
Setting up Mono
Running command : Engine/Binaries/DotNET/UnrealBuildTool.exe UE4Editor Linux Development
Using 'git status' to determine working set for adaptive non-unity build (/home/tom/bins/UE4).
Creating makefile for UE4Editor (no existing makefile)
Parsing headers for UE4Editor
  Running UnrealHeaderTool UE4Editor "/home/tom/bins/UE4/Engine/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/UE4Editor.uhtmanifest" -LogCmds="loginit warning, logexit warning, logdatabase error" -Unattended -WarningsAsErrors -abslog="/home/tom/bins/UE4/Engine/Programs/UnrealBuildTool/Log_UHT.txt"
Reflection code generated for UE4Editor in 16.5906122 seconds
------- Build details --------
Using toolchain located at '/home/tom/bins/UE4/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v17_clang-10.0.1-centos7/x86_64-unknown-linux-gnu'.
Using clang (/home/tom/bins/UE4/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v17_clang-10.0.1-centos7/x86_64-unknown-linux-gnu/bin/clang++) version '10.0.1' (string), 10 (major), 0 (minor), 1 (patch)
Using bundled libc++ standard C++ library.
Using lld linker
Using llvm-ar : /home/tom/bins/UE4/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v17_clang-10.0.1-centos7/x86_64-unknown-linux-gnu/bin/llvm-ar
Using fast way to relink  circularly dependent libraries (no FixDeps).
------------------------------
Building UE4Editor...
Performing 2782 actions (3 in parallel)
[1/2782] Compile SharedPCH.UnrealEd.ShadowErrors.h
[3/2782] Compile SharedPCH.CoreUObject.ShadowErrors.h
[2/2782] Compile SharedPCH.Engine.ShadowErrors.h
[4/2782] Compile SharedPCH.Core.ShadowErrors.h
[5/2782] Compile PCH.Core.h
#...........CUT........................
#     ALL GOOD HERE
#...........CUT........................
[2772/2782] Link (lld) libUE4Editor-Stomp.so
[2773/2782] Link (lld) libUE4Editor-UE4Game.so
[2774/2782] Link (lld) libUE4Editor-CrashDebugHelper.so
[2775/2782] Link (lld) libUE4Editor-BlankPlugin.so
[2776/2782] Link (lld) libUE4Editor-BlankModule.so
[2777/2782] Link (lld) libUE4Editor-PythonScriptPluginPreload.so
[2778/2782] Link (lld) libUE4Editor-FileUtilities.so
[2779/2782] Link (lld) libUE4Editor-Advertising.so
[2780/2782] Link (lld) libUE4Editor-IPC.so
[2781/2782] Copy libtbb.so.2
[2782/2782] UnrealBuildTool.exe UE4Editor.target
Total time in Local executor: 18935.08 seconds
Total execution time: 18995.48 seconds
Makefile:888: target 'UnrealInsights' does not exist
bash "/home/tom/bins/UE4/Engine/Build/BatchFiles/Linux/Build.sh" UnrealInsights Linux Development  
Fixing inconsistent case in filenames.
Setting up Mono
Running command : Engine/Binaries/DotNET/UnrealBuildTool.exe UnrealInsights Linux Development
Using 'git status' to determine working set for adaptive non-unity build (/home/tom/bins/UE4).
Creating makefile for UnrealInsights (no existing makefile)
Parsing headers for UnrealInsights
  Running UnrealHeaderTool UnrealInsights "/home/tom/bins/UE4/Engine/Intermediate/Build/Linux/B4D820EA/UnrealInsights/Development/UnrealInsights.uhtmanifest" -LogCmds="loginit warning, logexit warning, logdatabase error" -Unattended -WarningsAsErrors -abslog="/home/tom/bins/UE4/Engine/Programs/UnrealBuildTool/Log_UHT.txt"
Reflection code generated for UnrealInsights in 0.6222439 seconds
------- Build details --------
Using toolchain located at '/home/tom/bins/UE4/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v17_clang-10.0.1-centos7/x86_64-unknown-linux-gnu'.
Using clang (/home/tom/bins/UE4/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v17_clang-10.0.1-centos7/x86_64-unknown-linux-gnu/bin/clang++) version '10.0.1' (string), 10 (major), 0 (minor), 1 (patch)
Using bundled libc++ standard C++ library.
Using lld linker
Using llvm-ar : /home/tom/bins/UE4/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v17_clang-10.0.1-centos7/x86_64-unknown-linux-gnu/bin/llvm-ar
Using fast way to relink  circularly dependent libraries (no FixDeps).
------------------------------
Building UnrealInsights...
Performing 168 actions (3 in parallel)
[1/168] Compile SharedPCH.CoreUObject.ShadowErrors.h
[3/168] Compile PCH.Core.h
[2/168] Compile SharedPCH.Core.ShadowErrors.h
#...........CUT........................
#     ALL GOOD HERE
#...........CUT........................
[164/168] Link (lld) libUnrealInsights-SlateFileDialogs.so
[165/168] Link (lld) libUnrealInsights-Messaging.so
[166/168] Link (lld) libUnrealInsights-SlateReflector.so
[167/168] Link (lld) libUnrealInsights-GameplayInsights.so
[168/168] UnrealBuildTool.exe UnrealInsights.target
Total time in Local executor: 1030.96 seconds
Total execution time: 1033.82 seconds
Подякували: koala, Arete, leofun013