4.8 Hot Reload doesn't work on Linux

Hot-Reload doesn’t work on Linux with UE 4.8 (works fine with 4.7.x). After compiling C++ code it creates new library in “Binaries/Linux” directory and is not reloaded. Closing the editor, renaming the library and starting editor again loads the new code.

Hey -

There are a few questions I’d like to ask that will help me reproduce this bug. What IDE are you using on your Linux machine? Are you compiling in the editor or through the IDE? Does the hot reload behave the same in a new project? What happens when you add a new code class?

Cheers

Hi!

I compile from UE4Editor by clicking on the icon in toolbar. The IDE doesn’t matter, because I dont use it to compile (maybe I should try whether it works (e.g. using Makefile?)). I’m using QtCreator IDE and/or Kate. I tested only on the new project (e.g. FP or TP template) with UE 4.8. UE 4.7 seems to work OK.

It looks like UE4 compiles and creates a new library, but the library is not re-loaded, so the only way to reload is to close the editor, replace the library manually and open the editor again.

I’ve got a few questions about C++ in UE4:

  • Why UE4 creates new library with a random(?) number instead of replace the old library? Under Linux the file can be deleted in most cases when it is in use. Delete and create new with the same name - not replace.
  • Why UE4 tries to recompile the engine and links all its *.so libraries when creating a new C++ project?
  • I saw that UE4 generates a few project files: qmake, cmake, kdevelop, standard Makefile. But it lacks of QtCreators “Import Existing Project” files.

Regards,

Hey -

I created a new project in first person template and added an actor subclass to it. After adding a variable I pressed the compile button in the editor to trigger a hot reload. I did not notice any files being added to the Binaries/Linux folder after changing the value of the variable or adding another component to the class and compiling again. Is this the same process that you’re using? Let me know if there is something I’m doing differently or if you’re seeing something else.

Hi!

I’ve made some screens from UE4.8 and I’ve made steps to reproduce :slight_smile: Everything is in attachment (pdf).
link text

Hey -

Updates to using hot reload on Linux have been made recently. Can you check the latest release version and let me know if you’re still having any issues with hot reloading your code?

Cheers

Hi!
It works since Unreal Engine 4.8.1, I sent a patch on Github!
Regards,

Got the same error with Ubuntu 15.10 and Unreal Engine 4.10.2… Replacing the name of .so library files doesn’t help at all.

In my case, after compiling the code, I have to reload the project by clicking into the Recent Projects option, but then it collapsed (I tried to open it with terminal, but the terminal closed first, then came the loading windows).

Reopen the project by command, then everything worked just fine.

// Sometimes, I don’t know why, I got this error even though the code was successfully built by CodeLite IDE. I have to reverse to previous version of the code, compile it again and restart the editor.

Did you try with 4.10.1? On 4.10.1 it works and it also works on 4.11 for me (ArchLinux).

I’ll try 4.10.1, if there is no other solution.

I didn’t test 4.10.2, so I don’t know what happen. I see that the code which I fixed a few moths ago is not touched. You should try 4.10.1 and then write here whether it works or not :slight_smile:

It doesn’t really work, I mean when I finish compiling the code in CodeLite, and return back to the editor, the Characters/Actors seem still in the previous version. Sometimes the message “Hot Reload completed” appears, though.

I still need to restart the project in both cases.

Hey Tống-

Do you have the same hot reload issue using an IDE other than CodeLite? Can you also let us know if you have this issue when not using an IDE at all. You can do this by changing the code in a text editor and invoking UBT manually to recompile with a hot reload.

Cheers