# Errors while trying to create function library to access singleton class

**URL:** <https://forums.unrealengine.com/t/errors-while-trying-to-create-function-library-to-access-singleton-class/345358>\
**Category:** Programming & Scripting\
**Tags:** unreal-engine\
**Created:** [January 25, 2016, 11:14pm UTC](https://forums.unrealengine.com/t/errors-while-trying-to-create-function-library-to-access-singleton-class/345358 "2016-01-25T23:14:04Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Pe1man](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Pe1man](https://forums.unrealengine.com/u/Pe1man)\
**Post date:** [January 25, 2016, 11:14pm UTC](https://forums.unrealengine.com/t/errors-while-trying-to-create-function-library-to-access-singleton-class/345358/1 "2016-01-25T23:14:04Z")

</div>

First of all C++ is a complete mystery to me, so I followed this article to get a global data storage for my project:

> **[A new, community-hosted Unreal Engine Wiki](https://forums.unrealengine.com/t/a-new-community-hosted-unreal-engine-wiki/141494)**
>
> After over a year in maintenance mode, the official Unreal Engine Wiki is now permanently offline. These resources now live on a new community-run Unreal Engine Community Wiki — ue4community.wiki! You will be able to find content from the official...

The code was simply copy-pasted, but the project-related “thing” (don’t even know what that is, a namespace probably) that was #include “Solus.h” in the article.

I get tons of errors on compilation:

```
sultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Source\Summon\Public/SolusDataSingletonLibrary.h(20) : error C2079: 'USolusDataSingletonLibrary' uses undefined class 'SOLUS_API'
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Source\Summon\Public/SolusDataSingletonLibrary.h(20) : error C2143: syntax error: missing ';' before ':'
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Source\Summon\Public/SolusDataSingletonLibrary.h(20) : error C2059: syntax error: ':'
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Source\Summon\Public/SolusDataSingletonLibrary.h(20) : error C2059: syntax error: 'public'
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Source\Summon\Public/SolusDataSingletonLibrary.h(21) : error C2143: syntax error: missing ';' before '{'
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Source\Summon\Public/SolusDataSingletonLibrary.h(21) : error C2447: '{': missing function header (old-style formal list?)
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Intermediate\Build\Win64\UE4Editor\Inc\Summon\Summon.generated.cpp(16) : error C2825: 'USolusDataSingletonLibrary': must be a class or namespace when followed by '::'
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Intermediate\Build\Win64\UE4Editor\Inc\Summon\Summon.generated.cpp(16) : error C2510: 'USolusDataSingletonLibrary': left of '::' must be a class/struct/union
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Intermediate\Build\Win64\UE4Editor\Inc\Summon\Summon.generated.cpp(18) : error C2825: 'USolusDataSingletonLibrary': must be a class or namespace when followed by '::'
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Intermediate\Build\Win64\UE4Editor\Inc\Summon\Summon.generated.cpp(18) : error C2510: 'USolusDataSingletonLibrary': left of '::' must be a class/struct/union
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Intermediate\Build\Win64\UE4Editor\Inc\Summon\Summon.generated.cpp(18) : error C3861: 'StaticClass': identifier not found
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Intermediate\Build\Win64\UE4Editor\Inc\Summon\Summon.generated.cpp(18) : error C2065: 'execGetSolusData': undeclared identifier
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Intermediate\Build\Win64\UE4Editor\Inc\Summon\Summon.generated.cpp(20) : error C2923: 'TClassCompiledInDefer': 'USolusDataSingletonLibrary' is not a valid template type argument for parameter 'TClass'
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Source\Summon\Public/SolusDataSingletonLibrary.h(20) : note: see declaration of 'USolusDataSingletonLibrary'
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Intermediate\Build\Win64\UE4Editor\Inc\Summon\Summon.generated.cpp(20) : error C2514: 'TClassCompiledInDefer': class has no constructors
CompilerResultsLog:Error: Error c:\program files\epic games\4.10\engine\source\runtime\coreuobject\public\uobject\UObjectBase.h(313) : note: see declaration of 'TClassCompiledInDefer'
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Intermediate\Build\Win64\UE4Editor\Inc\Summon\Summon.generated.cpp(20) : error C2825: 'USolusDataSingletonLibrary': must be a class or namespace when followed by '::'
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Intermediate\Build\Win64\UE4Editor\Inc\Summon\Summon.generated.cpp(20) : error C2510: 'USolusDataSingletonLibrary': left of '::' must be a class/struct/union
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Intermediate\Build\Win64\UE4Editor\Inc\Summon\Summon.generated.cpp(20) : error C2065: 'StaticClassFlags': undeclared identifier
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Intermediate\Build\Win64\UE4Editor\Inc\Summon\Summon.generated.cpp(20) : error C2672: 'GetPrivateStaticClassBody': no matching overloaded function found
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Intermediate\Build\Win64\UE4Editor\Inc\Summon\Summon.generated.cpp(20) : error C2974: 'GetPrivateStaticClassBody': invalid template argument for 'TClass', type expected
CompilerResultsLog:Error: Error C:\Program Files\Epic Games\4.10\Engine\Source\Runtime\CoreUObject\Public\UObject\Class.h(2387) : note: see declaration of 'GetPrivateStaticClassBody'
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Intermediate\Build\Win64\UE4Editor\Inc\Summon\Summon.generated.cpp(99) : error C2825: 'USolusDataSingletonLibrary': must be a class or namespace when followed by '::'
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Intermediate\Build\Win64\UE4Editor\Inc\Summon\Summon.generated.cpp(99) : error C2510: 'USolusDataSingletonLibrary': left of '::' must be a class/struct/union
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Intermediate\Build\Win64\UE4Editor\Inc\Summon\Summon.generated.cpp(99) : error C3861: 'StaticClass': identifier not found
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Intermediate\Build\Win64\UE4Editor\Inc\Summon\Summon.generated.cpp(108) : error C2825: 'USolusDataSingletonLibrary': must be a class or namespace when followed by '::'
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Intermediate\Build\Win64\UE4Editor\Inc\Summon\Summon.generated.cpp(108) : error C2510: 'USolusDataSingletonLibrary': left of '::' must be a class/struct/union
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Intermediate\Build\Win64\UE4Editor\Inc\Summon\Summon.generated.cpp(108) : error C3861: 'StaticClass': identifier not found
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Intermediate\Build\Win64\UE4Editor\Inc\Summon\Summon.generated.cpp(130) : error C2825: 'USolusDataSingletonLibrary': must be a class or namespace when followed by '::'
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Intermediate\Build\Win64\UE4Editor\Inc\Summon\Summon.generated.cpp(130) : error C2510: 'USolusDataSingletonLibrary': left of '::' must be a class/struct/union
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Intermediate\Build\Win64\UE4Editor\Inc\Summon\Summon.generated.cpp(130) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Intermediate\Build\Win64\UE4Editor\Inc\Summon\Summon.generated.cpp(130) : error C2365: 'USolusDataSingletonLibrary': redefinition; previous definition was 'data variable'
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Source\Summon\Public/SolusDataSingletonLibrary.h(20) : note: see declaration of 'USolusDataSingletonLibrary'
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Intermediate\Build\Win64\UE4Editor\Inc\Summon\Summon.generated.cpp(130) : error C2550: 'USolusDataSingletonLibrary': constructor initializer lists are only allowed on constructor definitions
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Source\Summon\Public\SolusDataSingletonLibrary.h(20) : error C2079: 'USolusDataSingletonLibrary' uses undefined class 'SOLUS_API'
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Source\Summon\Public\SolusDataSingletonLibrary.h(20) : error C2143: syntax error: missing ';' before ':'
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Source\Summon\Public\SolusDataSingletonLibrary.h(20) : error C2059: syntax error: ':'
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Source\Summon\Public\SolusDataSingletonLibrary.h(20) : error C2059: syntax error: 'public'
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Source\Summon\Public\SolusDataSingletonLibrary.h(21) : error C2143: syntax error: missing ';' before '{'
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Source\Summon\Public\SolusDataSingletonLibrary.h(21) : error C2447: '{': missing function header (old-style formal list?)
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Source\Summon\Private\SolusDataSingletonLibrary.cpp(12) : error C2825: 'USolusDataSingletonLibrary': must be a class or namespace when followed by '::'
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Source\Summon\Private\SolusDataSingletonLibrary.cpp(12) : error C2510: 'USolusDataSingletonLibrary': left of '::' must be a class/struct/union
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Source\Summon\Private\SolusDataSingletonLibrary.cpp(13) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Source\Summon\Private\SolusDataSingletonLibrary.cpp(13) : error C2365: 'USolusDataSingletonLibrary': redefinition; previous definition was 'data variable'
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Source\Summon\Public\SolusDataSingletonLibrary.h(20) : note: see declaration of 'USolusDataSingletonLibrary'
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Source\Summon\Private\SolusDataSingletonLibrary.cpp(14) : error C2550: 'USolusDataSingletonLibrary': constructor initializer lists are only allowed on constructor definitions
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Source\Summon\Private\SolusDataSingletonLibrary.cpp(18) : error C2825: 'USolusDataSingletonLibrary': must be a class or namespace when followed by '::'
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Source\Summon\Private\SolusDataSingletonLibrary.cpp(18) : error C2510: 'USolusDataSingletonLibrary': left of '::' must be a class/struct/union
CompilerResultsLog:Error: Error C:\Users\Jorge\Documents\Unreal Projects\Summon\Source\Summon\Private\SolusDataSingleton.cpp(11) : error C2065: 'SolusEssentialVector': undeclared identifier

```

Would be really glad on any help =)

---

<div class="post-metadata">

**Author:** ![kgamble](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@kgamble](https://forums.unrealengine.com/u/kgamble)\
**Post date:** [January 26, 2016, 12:40am UTC](https://forums.unrealengine.com/t/errors-while-trying-to-create-function-library-to-access-singleton-class/345358/2 "2016-01-26T00:40:02Z")

</div>

It looks like you need to change “SOLUS\_API” on line 20 in SolusDataSingletonLibrary.h to say “\_API”. Judging by the path to that file, your project is called Summon, so in that case it would be “SUMMON\_API”. I believe that would fix all those errors.

---

<div class="post-metadata">

**Author:** ![Pe1man](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Pe1man](https://forums.unrealengine.com/u/Pe1man)\
**Post date:** [January 26, 2016, 1:19am UTC](https://forums.unrealengine.com/t/errors-while-trying-to-create-function-library-to-access-singleton-class/345358/3 "2016-01-26T01:19:41Z")

</div>

Yes, it did. I think my C++ avoidance is just about to finish, gotta learn it already =D  
Thank you!
