- Newest
- Most votes
- Most comments
Hey YogevN,
For C++ SDK without using Unreal, you can just have the .so files with the Server executable. But with Unreal Engine you need to build the C++ SDK using the same version of OpenSSL that was used by Unreal Engine. UE5.1 uses OpenSSL1.1.n, but if you're on a different version you can double-check the version of OpenSSL by looking for the following log line from the UE packaging output window: "LogInit: - supports SSL with OpenSSL/1.1.1n".
Then, download the same version of OpenSSL from https://www.openssl.org/source/old/1.1.1/
$ cd ~/openssl-1.1.1n; ./config; make
$ mkdir lib
$ cp libcrypto.so.1.1 libssl.so.1.1 lib/
$ cd ~/GameLift-Cpp-ServerSDK-5.1.0/; mkdir out
$ export OPENSSL_ROOT_DIR=/home/ec2-user/openssl-1.1.1n/
$ export OPENSSL_LIBRARIES=/home/ec2-user/openssl-1.1.1n/lib/
$ cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -S . -B ./out -DBUILD_FOR_UNREAL=1
$ cd out; make
Place the generated libaws-cpp-sdk-gamelift-server.so
in <UnrealProject>\Plugins\GameLiftServerSDK\ThirdParty\GameLiftServerSDK\Linux\x86_64-unknown-linux-gnu
. This is where Unreal links to the C++ SDK from during compilation and packaging. Detailed instructions on setting up the plugin can be found here.
After packaging the game server for Linux, copy over the .so files for OpenSSL into the package bundle. Your folder structure should finally look like:
-<Game>
--install.sh
--<MyUnrealProjectServer>.sh (This is the target .sh file that is generated by Unreal itself)
--<Game>\<MyUnrealProject>\Plugins\GameLiftServerSDK\ThirdParty\GameLiftServerSDK\Linux\x86_64-unknown-linux-gnu\
--libaws-cpp-sdk-gamelift-server.so
--libcrypto.so.1.1
--libssl.so.1.1
Thank you for the response. I tried the mitigation, but unfortunately, this version of the SDK can't be compiled with
openssl-1.1.1n
, when using the SDK built with the '3.x' version, the SDK is still looking forlibcrypto.so.3
, so that doesn't help that I got theso.1.1
version there.Still the same fatal error:
0x00007fb0917c4da0 libcrypto.so.3!UnknownFunction(0x3e4da0)
Let me know if you need more info. Thank you
Just wanted to say I am experiencing the exact same issue here as the original poster. The mitigation did not work.
Thanks for the feedback here! I've updated my initial answer to be a bit more descriptive with the steps required to build the SDK with
openssl-1.1.1n
. Could you give it a shot and see if that helps the issues you're hitting while building withopenssl-1.1.1n
. Withlibssl(libcrypto).so.3
there is a version conflict withopenssl-1.1.1n
that is statically linked by Unreal into the game server executable. Building (and bundling) the SDK with the same version of openssl (openssl-1.1.1n
) should help mitigate the problem.If you're still facing issues building the SDK with
openssl-1.1.1n
, could you help provide a more detailed error message or log that we could help resolve?Thank you for updating the instructions above. Unfortunately, I am getting the following make errors:
CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message): Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY OPENSSL_INCLUDE_DIR) Call Stack (most recent call first): /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE) /usr/share/cmake-3.22/Modules/FindOpenSSL.cmake:574 (find_package_handle_standard_args) CMakeLists.txt:10 (find_package)
It looks like the exports are setup correctly: (from $ export) declare -x OPENSSL_LIBRARIES="/home/<username>/openssl-1.1.1n/lib/" declare -x OPENSSL_ROOT_DIR="/home/<username>/openssl-1.1.1n/"
It looks like the files are in the correct locations, and everything is setup properly. Should I also install openssl (missing from the instructions above)?
Thank you! Yogev
Hi there! So this is still an issue for me. I'm using Unreal Engine 5.3 and Amazon GameLift Plugin v1.0.0, which contains the GameLift Server CPP SDK 5.1.0. Windows Server works fine, Linux Server on Ubuntu 22.04.2LTS crashes with
libcrypto.so.3!UnknownFunction
. I've tried the suggested solution step for step, revalidated it multiple times, checked with 2 different projects, same issue.Any suggestions? Can we maybe get precompiled binaries for Linux and Win64 for the GameLift Server SDK? I'm sure I'm doing it right, but I still suspect this step to be problematic.
Best regards, David
Relevant content
- Accepted Answerasked 5 years ago
- asked 4 years ago
- AWS OFFICIALUpdated 2 years ago
- AWS OFFICIALUpdated 4 months ago
- AWS OFFICIALUpdated a year ago
- AWS OFFICIALUpdated 8 months ago
Hi YogevN, were you able to resolve this?