Hey ,
I appreciate the follow up. Chalk this one up to human error on my part (which is more often the case than not).
So, what I was doing was including two header files which had the same name but one was way out of date. ([projectname].h)
- During my “learning the
engine/environment” stage, I was
manually creating the
[Projectname]Classes.h file and
adding #includes to it as I added new classes. Later I found
it was automatically generated for me
in the intermediate folders and I didn’t need to do this. - I manually add classes to my project using visual studio. I make sure that all of the source files are in the appropriate public/private folders since VS tends to default to the intermediate folder.
The outdated header file:
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "Engine.h"
The up to date header file:
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "Engine.h"
#include "SlateBasics.h"
#include "SlateExtras.h"
#include "MageMaster2Classes.h"
After some threshold of CPP files, the UBT would switch to using the outdated header file, which didn’t include the “MageMaster2Classes.h” file which contained a list of includes for all of my other game classes. That caused a bunch of linker errors. I’m guessing internally it uses multithreading for compiling and linking and there’s a fixed number of cpp files it will process before splitting the work load into two threads?
Anyways, the solution was to just delete the outdated header file (which was hard to figure out as being the root cause).