TriAxis-Games / RealtimeMeshComponent

Unreal Engine 5 plugin component for rendering runtime generated content.
https://rmc.triaxis.games/
Other
1.53k stars 405 forks source link

Can't build C++ projects with UE 4.25 on Linux #183

Closed dennismozart1994 closed 4 years ago

dennismozart1994 commented 4 years ago

Hi guys, no matter if through the Editor or through QT Creator or other IDE, when I trying to build a C++ project on Linux, I can't get it to work. If I get the same code and just change the UE4 version to 4.24 for example, I able to build normally.

This was tested both on 4.25 and 4.25.1. Both fails due to the same errors.

By the way I did install Windows to double check if it was something on my code, but on Windows, with 4.25.1 and 4.25 the code builds just fine through Visual Studio.

My Machine config: Operation System: Ubuntu 20.4 LTS(Tested also on Pop OS! 20.4 and Linux Mint 20.4, both with the same errors) RAM: 16GB CPU Cores: 8 Cores GPU Memory: 2GB

Here's the log output from the IDE/Compiler:

18:17:44: Starting /home/dennis/UnrealEngine/Engine/Binaries/Linux/UE4Editor "/home/dennis/Study/Study.uproject"... Increasing per-process limit of core file size to infinity. LogInit: Display: Running engine for game: Study LogPlatformFile: Not using cached read wrapper LogTaskGraph: Started task graph with 5 named threads and 26 total threads with 3 sets of task threads. LogStats: Stats thread started at 0.119183 LogICUInternationalization: ICU TimeZone Detection - Raw Offset: -3:00, Platform Override: '' LogPluginManager: Mounting plugin BackChannel LogPluginManager: Mounting plugin RawInput LogPluginManager: Mounting plugin SkeletalReduction LogPluginManager: Mounting plugin ChaosNiagara LogPluginManager: Mounting plugin GeometryCollectionPlugin LogPluginManager: Mounting plugin AutomationUtils LogPluginManager: Mounting plugin ChaosCloth LogPluginManager: Mounting plugin ChaosEditor LogPluginManager: Mounting plugin PlanarCut LogPluginManager: Mounting plugin ChaosSolverPlugin LogPluginManager: Mounting plugin ProxyLODPlugin LogPluginManager: Mounting plugin GeometryProcessing LogPluginManager: Mounting plugin PlatformCrypto LogPluginManager: Mounting plugin ChaosClothEditor LogPluginManager: Mounting plugin CharacterAI LogPluginManager: Mounting plugin AlembicImporter LogPluginManager: Mounting plugin GeometryCache LogPluginManager: Mounting plugin UdpMessaging LogPluginManager: Mounting plugin TcpMessaging LogPluginManager: Mounting plugin CodeLiteSourceCodeAccess LogPluginManager: Mounting plugin CLionSourceCodeAccess LogPluginManager: Mounting plugin AnimationSharing LogPluginManager: Mounting plugin RiderSourceCodeAccess LogPluginManager: Mounting plugin SubversionSourceControl LogPluginManager: Mounting plugin KDevelopSourceCodeAccess LogPluginManager: Mounting plugin PlasticSourceControl LogPluginManager: Mounting plugin PerforceSourceControl LogPluginManager: Mounting plugin XCodeSourceCodeAccess LogPluginManager: Mounting plugin UObjectPlugin LogPluginManager: Mounting plugin VisualStudioSourceCodeAccess LogPluginManager: Mounting plugin VisualStudioCodeSourceCodeAccess LogPluginManager: Mounting plugin GitSourceControl LogPluginManager: Mounting plugin ActorLayerUtilities LogPluginManager: Mounting plugin NullSourceCodeAccess LogPluginManager: Mounting plugin NetcodeUnitTest LogPluginManager: Mounting plugin NUTUnrealEngine4 LogPluginManager: Mounting plugin OnlineSubsystemGooglePlay LogPluginManager: Mounting plugin OnlineSubsystemUtils LogPluginManager: Mounting plugin OnlineSubsystem LogPluginManager: Mounting plugin OnlineSubsystemNull LogPluginManager: Mounting plugin OnlineSubsystemIOS LogPluginManager: Mounting plugin Paper2D LogPluginManager: Mounting plugin MeshPainting LogPluginManager: Mounting plugin Niagara LogPluginManager: Mounting plugin SoundFields LogPluginManager: Mounting plugin MobilePatchingUtils LogPluginManager: Mounting plugin ArchVisCharacter LogPluginManager: Mounting plugin SignificanceManager LogPluginManager: Mounting plugin GoogleCloudMessaging LogPluginManager: Mounting plugin LocationServicesBPLibrary LogPluginManager: Mounting plugin OculusVR LogPluginManager: Mounting plugin AppleMoviePlayer LogPluginManager: Mounting plugin PostSplashScreen LogPluginManager: Mounting plugin ProceduralMeshComponent LogPluginManager: Mounting plugin AudioCapture LogPluginManager: Mounting plugin AssetTags LogPluginManager: Mounting plugin WebMMoviePlayer LogPluginManager: Mounting plugin SteamVR LogPluginManager: Mounting plugin AndroidPermission LogPluginManager: Mounting plugin PhysXVehicles LogPluginManager: Mounting plugin AndroidDeviceProfileSelector LogPluginManager: Mounting plugin WindowsMoviePlayer LogPluginManager: Mounting plugin EditableMesh LogPluginManager: Mounting plugin RuntimePhysXCooking LogPluginManager: Mounting plugin AppleImageUtils LogPluginManager: Mounting plugin ExampleDeviceProfileSelector LogPluginManager: Mounting plugin GooglePAD LogPluginManager: Mounting plugin CableComponent LogPluginManager: Mounting plugin IOSDeviceProfileSelector LogPluginManager: Mounting plugin Synthesis LogPluginManager: Mounting plugin LinuxDeviceProfileSelector LogPluginManager: Mounting plugin STUBBED: FDesktopPlatformLinux::GetNativeFeedbackContext at /home/dennis/UnrealEngine/Engine/Source/Developer/DesktopPlatform/Private/Linux/DesktopPlatformLinux.cpp:450 (GetNativeFeedbackContext) AndroidMoviePlayer LogPluginManager: Mounting plugin CustomMeshComponent LogPluginManager: Mounting plugin AISupport LogPluginManager: Mounting plugin MatineeToLevelSequence LogPluginManager: Mounting plugin TemplateSequence LogPluginManager: Mounting plugin LevelSequenceEditor LogPluginManager: Mounting plugin ActorSequence LogPluginManager: Mounting plugin MovieRenderPipeline LogPluginManager: Mounting plugin CameraShakePreviewer LogPluginManager: Mounting plugin MLSDK LogPluginManager: Mounting plugin MagicLeapLightEstimation LogPluginManager: Mounting plugin MagicLeapMedia LogPluginManager: Mounting plugin MagicLeap LogPluginManager: Mounting plugin MagicLeapPassableWorld LogPluginManager: Mounting plugin GameplayTagsEditor LogPluginManager: Mounting plugin CurveEditorTools LogPluginManager: Mounting plugin SpeedTreeImporter LogPluginManager: Mounting plugin MacGraphicsSwitching LogPluginManager: Mounting plugin EditorScriptingUtilities LogPluginManager: Mounting plugin PluginBrowser LogPluginManager: Mounting plugin MobileLauncherProfileWizard LogPluginManager: Mounting plugin MaterialAnalyzer LogPluginManager: Mounting plugin CryptoKeys LogPluginManager: Mounting plugin GeometryMode LogPluginManager: Mounting plugin FacialAnimation LogPluginManager: Mounting plugin AssetManagerEditor LogPluginManager: Mounting plugin DataValidation LogPluginManager: Mounting plugin VariantManagerContent LogPluginManager: Mounting plugin DatasmithContent LogPluginManager: Mounting plugin LightPropagationVolume LogPluginManager: Mounting plugin LauncherChunkInstaller LogPluginManager: Mounting plugin ScreenshotTools LogPluginManager: Mounting plugin WmfMedia LogPluginManager: Mounting plugin WebMMedia LogPluginManager: Mounting plugin AvfMedia LogPluginManager: Mounting plugin MediaCompositing LogPluginManager: Mounting plugin ImgMedia LogPluginManager: Mounting plugin AndroidMedia LogPluginManager: Mounting plugin MediaPlayerEditor LogInit: Warning: Incompatible or missing module: Study LogInit: Initializing SDL. LogInit: Initialized SDL 2.0.10 revision: 12952 (hg-12952:bc90ce38f1e2) (compiled against 2.0.10) LogInit: Using SDL video driver 'x11' LogInit: Display metrics: LogInit: PrimaryDisplayWidth: 1360 LogInit: PrimaryDisplayHeight: 768 LogInit: PrimaryDisplayWorkAreaRect: LogInit: Left=72, Top=27, Right=1360, Bottom=768 LogInit: VirtualDisplayRect: LogInit: Left=72, Top=27, Right=1360, Bottom=768 LogInit: TitleSafePaddingSize: X=0.000 Y=0.000 Z=0.000 W=0.000 LogInit: ActionSafePaddingSize: X=0.000 Y=0.000 Z=0.000 W=0.000 LogInit: Number of monitors: 1 LogInit: Monitor 0 LogInit: Name: AOC LCD 24" LogInit: ID: display0 LogInit: NativeWidth: 1360 LogInit: NativeHeight: 768 LogInit: bIsPrimary: true Running /home/dennis/UnrealEngine/Engine/Binaries/DotNET/UnrealBuildTool.exe Development Linux -Project="/home/dennis/Study/Study.uproject" -TargetType=Editor -Progress -NoEngineChanges -NoHotReloadFromIDE

Running Mono...

Fixing inconsistent case in filenames. Setting up Mono ~/UnrealEngine/Engine ~/UnrealEngine/Engine/Binaries/Linux WARNING: Trying to build an enterprise target but the enterprise directory is missing. Falling back on engine components only. Using 'git status' to determine working set for adaptive non-unity build (/home/dennis/UnrealEngine). Using 'git status' to determine working set for adaptive non-unity build (/home/dennis/Study). Creating makefile for StudyEditor (no existing makefile) @progress push 5% @progress push 5% @progress pop Parsing headers for StudyEditor Running UnrealHeaderTool "/home/dennis/Study/Study.uproject" "/home/dennis/Study/Intermediate/Build/Linux/B4D820EA/StudyEditor/Development/StudyEditor.uhtmanifest" -LogCmds="loginit warning, logexit warning, logdatabase error" -Unattended -WarningsAsErrors -abslog="/home/dennis/UnrealEngine/Engine/Programs/UnrealBuildTool/Log_UHT.txt" Reflection code generated for StudyEditor in 6.4354034 seconds @progress pop ------- Build details -------- Using toolchain located at '/home/dennis/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v16_clang-9.0.1-centos7/x86_64-unknown-linux-gnu'. Using clang (/home/dennis/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v16_clang-9.0.1-centos7/x86_64-unknown-linux-gnu/bin/clang++) version '9.0.1' (string), 9 (major), 0 (minor), 1 (patch) Using bundled libc++ standard C++ library. Using lld linker Using llvm-ar : /home/dennis/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v16_clang-9.0.1-centos7/x86_64-unknown-linux-gnu/bin/llvm-ar Using fast way to relink circularly dependent libraries (no FixDeps).

ERROR: Building would modify the following engine files:

   /home/dennis/UnrealEngine/Engine/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/Engine/SharedPCH.Engine.h.d
   /home/dennis/UnrealEngine/Engine/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/Engine/SharedPCH.Engine.h.gch

   Please rebuild from an IDE instead.

LogCore: Engine exit requested (reason: EngineExit() was called) LogExit: Preparing to exit. LogModuleManager: Shutting down and abandoning module DesktopPlatform (44) LogModuleManager: Shutting down and abandoning module PlatformCryptoOpenSSL (42) LogModuleManager: Shutting down and abandoning module PlatformCryptoTypes (40) LogModuleManager: Shutting down and abandoning module PlatformCrypto (38) LogModuleManager: Shutting down and abandoning module AnimationModifiers (36) LogModuleManager: Shutting down and abandoning module PropertyEditor (35) LogModuleManager: Shutting down and abandoning module AudioEditor (32) LogModuleManager: Shutting down and abandoning module TextureCompressor (30) LogModuleManager: Shutting down and abandoning module RenderCore (28) LogModuleManager: Shutting down and abandoning module Landscape (26) LogModuleManager: Shutting down and abandoning module SlateRHIRenderer (24) LogModuleManager: Shutting down and abandoning module OpenGLDrv (22) LogModuleManager: Shutting down and abandoning module AnimGraphRuntime (20) LogModuleManager: Shutting down and abandoning module Renderer (18) LogModuleManager: Shutting down and abandoning module Engine (16) LogModuleManager: Shutting down and abandoning module CoreUObject (14) LogModuleManager: Shutting down and abandoning module NetworkFile (12) LogModuleManager: Shutting down and abandoning module CookedIterativeFile (10) LogModuleManager: Shutting down and abandoning module StreamingFile (8) LogModuleManager: Shutting down and abandoning module SandboxFile (6) LogModuleManager: Shutting down and abandoning module PakFile (4) LogModuleManager: Shutting down and abandoning module RSA (3) LogExit: Exiting. LogInit: Tearing down SDL. Exiting abnormally (error code: 1) 18:18:43: /home/dennis/UnrealEngine/Engine/Binaries/Linux/UE4Editor exited with code 1

Koderz commented 4 years ago

Not sure what that error means. It never even mentions the RMC, so wondering if some of the intermediate files got corrupted or out of date some how.

dennismozart1994 commented 4 years ago

@Koderz this is a project build without any Intermediate Folder, it only has the required files, and the project files were the ones generated by the GenerateProjectFiles.sh of the UnrealEngine Repo itself. As I said If I clone the same repo on Windows it builds normally, it's something with the Linux Compiler that's causing an issue... specifically not sure but it seems that the compiler tries to modify these files while building and doesn't seem to be able to.

/home/dennis/UnrealEngine/Engine/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/Engine/SharedPCH.Engine.h.d /home/dennis/UnrealEngine/Engine/Intermediate/Build/Linux/B4D820EA/UE4Editor/Development/Engine/SharedPCH.Engine.h.gch

Koderz commented 4 years ago

Unfortunately I'm probably not going to be of much help here. There's nothing in that log pointing to the RMC, and I don't have a way to test on Linux myself right now. I'm leaning towards saying that's a bug in UBT. Looking in the UE4 Discord looks like multiple people have hit that for 4.25.

-Chris

dennismozart1994 commented 4 years ago

Nut I did tested on other distros that aren't Ubuntu based like Manjaro and got the same error. It seems like it's something that may need to be addressed/fixed in the Unreal Engine code, not into the Operational System. Isn't there anyone able to test something like this in the development team? I mean, it's pretty straight forward, just open up any c++ project into an IDE like QT Creator and try to compile it.

Koderz commented 4 years ago

I'm confused. You know I'm not Epic right? This plugin is a development team of 1 (with some contributions from others). I don't think this bug you're experiencing is directly related to this plugin, if it is I'll try to help where I can but I have no way to test on Linux right now.

I wish I could help but in cases like this, which appear to be an engine bug in UBT you'd have to talk to Epic directly., which you can submit bugs here: https://www.unrealengine.com/en-US/support/report-a-bug

Hope that helps -Chris

dennismozart1994 commented 4 years ago

Oh sorry, it's too late here, I thought I was at the Epic repo/issues report when I wrote this one.