Unreal source is segmented into modules, even your game project is considered a module, a plugin for example is also its own module.
When you need to access a certain module you need to add it as a dependency, by default your project already has access to a few modules by default but there are special cases where you will need to add the module as a dependency.
I’ll give you an example, I need to check if the application is in the background or active so I can use the following code and I have the header file include
#include "Framework/Application/SlateApplication.h"
When I try to compile I get a linking error, usually a linking error indicates you’re not including a certain header file or you don’t have access to a module that you’re accessing.
In this case to solve the issue I need to go to my Build.cs file and add Slate as a dependency so I can access its headers. I don’t need SlateCore for my case but I added it just in case I might need it.
PublicDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" });
If you need to know what module name you need you can inspect the header file path and in this case it’s Slate, however sometimes the name is different so you’ll have to google it.

Hope this helps.

