- Newest
- Most votes
- Most comments
Yeah, I can confirm this. I did something similar for my example project. Here is the commit with all changes for Server SDK. I skipped warnings fixes because they're not necessary for the demo, though important of course. Another point: I needed additional public definition otherwise project won't link.
You're welcome to explore my code or corresponding article if anyone interesting. It could be helpful too.
Hey @REDACTEDUSER
PublicDefinitions.Add("USE_IMPORT_EXPORT");
I remember I needed this in the Yetitech client sdk a while ago but I am curious as to why you included this in the server sdk. What is the error that you get when you remove this line? And does this only happen when using both the server sdk and client sdk? Only asking because I don't seem to need this line when I use the server sdk alone.
But thanks for the project and article, I always meant to go back and fix my pull request to the yeti tech client sdk despite not using it anymore.
Just wondering, did you add this line in the
GameLiftServerSDK.Build.cs
file?
Yes, you can see it in the commit.
What is the error that you get when you remove this line?
Linkage errors. Either not defined symbols or double defined symbols. If I not mistaken it was constructors of Aws::GameLift::Server::Model::GameSession. They're inlined and that's fine but somehow the Unreal Build system refuses to see them properly. It worked perfectly in UE4.22 (I had a project on the older version); I guess, they've changed something in the build system.
And does this only happen when using both the server sdk and client sdk?
No, It happened before I even started integrating Client SDK.
Exact error messages if I just comment out this public definition (I stripped my local paths):
2>aws-cpp-sdk-gamelift-server.lib(aws-cpp-sdk-gamelift-server.dll) : error LNK2005: "public: __cdecl Aws::GameLift::Server::Model::GameSession::~GameSession(void)" (??1GameSession@Model@Server@GameLift@Aws@@QEAA@XZ) already defined in GameLiftServerSDK.cpp.obj
2>aws-cpp-sdk-gamelift-server.lib(aws-cpp-sdk-gamelift-server.dll) : error LNK2005: "public: __cdecl Aws::GameLift::Server::Model::GameSession::GameSession(class Aws::GameLift::Server::Model::GameSession const &)" (??0GameSession@Model@Server@GameLift@Aws@@QEAA@AEBV01234@@Z) already defined in GameLiftServerSDK.cpp.obj
2> Creating library <path>\UE4GameLift\Binaries\Win64\UE4GameLiftServer.lib and object <path>\UE4GameLift\Binaries\Win64\UE4GameLiftServer.exp
2><path>\UE4GameLift\Binaries\Win64\UE4GameLiftServer.exe : fatal error LNK1169: one or more multiply defined symbols found
Relevant content
- asked 2 years ago
- Accepted Answerasked 4 years ago
- asked 15 days ago
- AWS OFFICIALUpdated 10 months ago
- AWS OFFICIALUpdated 2 years ago
- AWS OFFICIALUpdated a year ago
- AWS OFFICIALUpdated 2 years ago