question

carson avatar image
carson asked

Linux PlayFab GSDK with UE4 dedicated servers

It seems as though the GSDK has linking issues when attempting to build a UE4 linux dedicated server. Has anyone had any success doing this in the past?

This post from last year discusses similar issues, and was unfortunately left unresolved.

unrealgame manager
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

1 Answer

·
Seth Du avatar image
Seth Du answered

After the consultation with the team, the linking issue is that our library is compiled against libstdc++, while Unreal by default uses bundled libc++. You may refer to https://answers.unrealengine.com/questions/720444/view.html.

Currently, this issue has been listed in the backlog and the team will work out a detailed documentation about integrating GSDK in UE4 on Linux, however, currently there is no ETA we can share. Please keep the track of documentation and blog updates on our website.

If possible, you may also try to compile GSDK library against libc++ by yourself to solve the link issue. Thanks for the understanding.

3 comments
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

01F0 avatar image 01F0 commented ·

Any news on that backlog issue?

I'm currently building a dedicated UE4 server but I'm expecting to run into issues with this libstdc++/libc++ issue soon.

0 Likes 0 ·
01F0 avatar image 01F0 01F0 commented ·

I'm not sure how far I am going to do this experiment as I'm only switching to Linux to get faster deploy times.
Maybe someone will have use of this information.

0 Likes 0 ·
01F0 avatar image 01F0 01F0 commented ·

1.

First of all, I cloned the gsdk repo.


2.

I made the following changes to the GSDK_CPP_LINUX project:

General -> Platform Toolset -> Clang for Windows Subsystem for Linux

C/C++ -> General -> Compiler -> C Compiler: clang++-9

C/C++ -> General -> Compiler -> C++ Compiler: clang++-9

C/C++ -> Command Line -> Additional Options: -stdlib=libc++


3.

I installed Ubuntu as a sub-system in Windows and ran:

sudo apt-get install clang-tools-9

sudo apt-get install libc++-dev

sudo apt-get install libc++abi-dev


I picked clang-9 since that's what Unreal 4.25 uses.

4.

I started Ubuntu (still sub-system) and verified that I could compile using libc++:

echo $'#include <iostream>\nusing namespace std;int main() {  cout << "Hello, World!" << endl;}' > test.cpp
clang++-9 -stdlib=libc++ test.cpp
./a.out


5.

I built only the GSDK_CPP_LINUX project in Visual Studio and I got this static library:

libGSDK_CPP_Linux.a

I should be able to replace the .lib file reference in my Unreal project's Build.cs with this .a file. I will try that next, but there's a couple of other references I'm uncertain of.

0 Likes 0 ·

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.