UKismetSystemLibrary::PrintString Throwing Compile Errors

I wanted to do some logging in my game using the PrintString API as it has proven effective when I prototyped stuff in Blueprints. However, when I use the method in C++, I end up with the following errors:

Error	1	error LNK2019: unresolved external symbol "public: static void __cdecl UKismetSystemLibrary::PrintString(class UObject *,class FString const &,bool,bool,struct FLinearColor)" (?PrintString@UKismetSystemLibrary@@SAXPEAVUObject@@AEBVFString@@_N2UFLinearColor@@@Z) referenced in function "public: void __cdecl AEndlessWatchCharacterBase::ScanForCover(void)" (?ScanForCover@AEndlessWatchCharacterBase@@QEAAXXZ)


Error	2	error LNK1120: 1 unresolved externals

I am unsure where I am going wrong with this. My method call looks like this:

FString message = "Message";

UKismetSystemLibrary::PrintString(this->GetWorld(), message, this->bDisplayDebugLogOnScreen, true);

Any help would be appreciated.


It’s not exposed for calling across modules. If you look at the header, you’ll see it is not decorated with ENGINE_API which makes it callable across modules/dlls. Those functions are really only meant to be called by the Blueprint VM

Use UE_LOG to write to the log in C++ and DrawDebugString to draw it in the world in C++