Creating basic/empty class is not visible to the compiler


  • I am new to Unreal but am an experienced dev.
  • I am developing on a Mac running OSX 10.10.4 with Unreal Engine 4.9.2.


  • I created my first class: an empty. I put things in it compiled it and used a test class with BeginPlay and EndPlay to debug it. It worked fine so I committed it all into my repo. Things are working well so far.
  • Now the strangeness creeps in. I added another empty class to the project. It says it compiles fine. Then I add a #include to my test class (without editing the new class at all): “fatal error: UTF-16 (LE) byte order mark detected in …”.
  • I understand text encoding so I open the new files in emacs and in 3 keystrokes they are saved as UTF-8. Now it compiles ok … it says.
  • To prove that it isn’t compiling at all is as simple as making the .cpp have a compile error: I can insert a non-sense string anywhere (e.g. “xyz” between the constructor and destructor). Compiler still says it is happy. So it’s importing the .h but not actually compiling the .cpp into a linkable object.
  • If I create an instance of the new class in my test class I get linking errors. “Undefined symbols for architecture …” for the constructor and destructor of my new empty class. Same problem as previous bullet but viewed differently.

I have been down the rabbit hole on Google and have tried some very bizarre things, reverted my repo and tried every combination I could find in XCode and Unreal to get things to compile correctly. Is there some simple setting toggle somewhere that I inadvertently set or is something else going on here?

I don’t think this answers any of my issues. I posted too much in one question I guess. I thought that since all of my issues showed up at the same time they were related. I’m going to break this question into multiple questions elsewhere. Thanks for trying.

lol i think i posted this to wrong quastion don’t know how, i remeber i was responding to quastion about IDE o.o sry