Context:
- 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.
Timeline:
- 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?