You need to add the relevant modules as private (or public) dependencies. Take a look at the linker errors, you’ll probably have a bunch - you can usually figure out which modules to include based on the path to the file where the missing functions/classes are declared.
Unreal code is organized like:
[Runtime|Editor]/.../<Module>/[Public|Private|Classes]/.../<source file>
Or:
Plugins/.../<Plugin>/<Module>/[Public|Private|Classes]/.../<source file>
You’re looking for the module name, the last directory before “Public”, “Private”, or “Classes” in the relevant source file’s path. Add that name (just the name) to your private dependencies:
PrivateDependencyModuleNames.AddRange(new[] {"Module1", "Module2"});
If you’re dependent on a plugin module, you should add that plugin as a dependency for your own by listing it in your uplugin file, e.g.:
"Plugins": [
{
"Name": "SomeEnginePlugin",
"Enabled": true
}
]