What could be causing one build configuration to compile and another not to? This happens on multiple people’s machines in 4.24.3. When compiled from source it happens too. We tried cleaning as well.
It would seem that it’s failing to find your CPP (or it’s somehow failing to compile). Is RequestGameplayTag an Editor only method? Are GameplayAbilities somehow not being marked a dependency in your client build?
It’s definitely a config issue, so I’d compare your Project vs ProjectEditor .build.cs files.
I haven’t found evidence of it being editor only. GameplayTags is actually in its own library separate from abilities. I can double check to make sure all the libs are being added as dependencies.
/**
* A single gameplay tag, which represents a hierarchical name of the form x.y that is registered in the GameplayTagsManager
* You can filter the gameplay tags displayed in the editor using, meta = (Categories = "Tag1.Tag2.Tag3"))
*/
USTRUCT(BlueprintType, meta = (HasNativeMake = "GameplayTags.BlueprintGameplayTagLibrary.MakeLiteralGameplayTag", HasNativeBreak = "GameplayTags.BlueprintGameplayTagLibrary.GetTagName"))
struct GAMEPLAYTAGS_API FGameplayTag
{
GENERATED_USTRUCT_BODY()
/** Constructors */
FGameplayTag()
{
}
/**
* Gets the FGameplayTag that corresponds to the TagName
*
* @param TagName The Name of the tag to search for
* @param ErrorIfNotfound: ensure() that tag exists.
* @return Will return the corresponding FGameplayTag or an empty one if not found.
*/
static FGameplayTag RequestGameplayTag(FName TagName, bool ErrorIfNotFound=true);
Everything compiles great before the linker step but I still get that linker error only on DebugGame but not in DebugEditor.
OK!
Figured it out. I was missing the DLL Export macro on my constants in the header. They were declared in a different module. Still not sure why DebugEditorCompiled. I usually find myself failing to compile even Debug Editor builds if I forget this.