# Linux (Dev/Debug/Shipping) Server - Linux Library (.so) - undefined symbol

**URL:** <https://forums.unrealengine.com/t/linux-dev-debug-shipping-server-linux-library-so-undefined-symbol/454609>\
**Category:** Platform & Builds\
**Tags:** library, Server, Linux, linux-server, unreal-engine, question\
**Created:** [August 30, 2019, 1:25am UTC](https://forums.unrealengine.com/t/linux-dev-debug-shipping-server-linux-library-so-undefined-symbol/454609 "2019-08-30T01:25:27Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![eXi](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/exi/32/906583_2.png) [@eXi](https://forums.unrealengine.com/u/eXi)\
**Post date:** [August 30, 2019, 1:25am UTC](https://forums.unrealengine.com/t/linux-dev-debug-shipping-server-linux-library-so-undefined-symbol/454609/1 "2019-08-30T01:25:27Z")

</div>

Hey everyone,

currently running into a problem where the Linux Server Target reports “undefined symbol” on functions added via a Linux library (.so). It all works fine when using Linux Editor Targets. I tried Dev, Debug and Shipping, all with the same result, so I assume the Server Target sets (or doesn’t set) something that this Library needs.

```
1>ld.lld.exe : error : undefined symbol: Microsoft::Azure::Gaming::GSDK::registerShutdownCallback(std::__1::function<void ()>)
1> >>> referenced by HLPlayFabSubsystem.cpp:84 (E:/UE4/Perforce/Clients/####/####Game_4_19/Source/####/Private/Core/Subsystems\HLPlayFabSubsystem.cpp:84)
1> >>> E:/UE4/Perforce/Clients/####/####Game_4_19/Intermediate/Build/Linux/B4D820EA####Server/Development/Hoverloop/HLPlayFabSubsystem.cpp.o:(UHLPlayFabSubsystem::NotifyStart())
1>

```

("####" is me cutting out project name).

I don’t really know what that could be. The Library in question is the GSDK from PlayFab:  
[GitHub - PlayFab/gsdk: Game Server SDK for PlayFab Multiplayer Servers](https://github.com/PlayFab/gsdk)

I’m loading it via: “PublicAdditionalLibraries.Add(Path.Combine(LibrariesPath, PlatformString, “libGSDK\_CPP\_Linux.so”));” in the project’s build.cs and that seems to not cause any trouble looking into the logs.  
It also generates errors if I typo the name, so it seems to find it properly (it does when building Linux Editor).

Any idea what this could be caused by?
