YetiTech-Studios / UE4GameLiftClientSDK

Gamelift Client SDK for Unreal Engine 4.
MIT License
79 stars 41 forks source link

AWSCoreModule.cpp linker errors #17

Open jarrodspurrier opened 5 years ago

jarrodspurrier commented 5 years ago

I'm getting the following linker errors when trying to build on 4.21.2 with VS2017 15.9.7:

AWSCoreModule.cpp.obj : error LNK2001: unresolved external symbol "void __cdecl Aws::InitAPI(struct Aws::SDKOptions const &)" (?InitAPI@Aws@@YAXAEBUSDKOptions@1@@Z)
AWSCoreModule.cpp.obj : error LNK2001: unresolved external symbol "void __cdecl Aws::ShutdownAPI(struct Aws::SDKOptions const &)" (?ShutdownAPI@Aws@@YAXAEBUSDKOptions@1@@Z)

It was building successfully prior to upgrading to VS2017 15.9.7.

chris-gong commented 5 years ago

@jarrodspurrier do you have the v141 build tools installed?

image

chris-gong commented 5 years ago

Also if you're experiencing this issue, then that means you're missing dll and lib files from the ThirdParty folder in the plugin. I know this because I experienced the exact same issue, hope this helps.

TimSmolonski commented 4 years ago

@chris-gong I have same error but I copied all dll and lib files from your fork. v141 tools installed. Do you have any suggestions?

chris-gong commented 4 years ago

@TimSmolonski I would suggest using the entire fork if possible. Also, if you are using the GameLift Server SDK, you may have to add these two lines to the GameLiftServerSDK.Build.cs file. PublicDefinitions.Add("USE_IMPORT_EXPORT");

This repository also has a working version of both the client and server sdk's working together, https://github.com/ZX-Diablo/UE4GameLift/tree/master/Plugins

TimSmolonski commented 4 years ago

@TimSmolonski I would suggest using the entire fork if possible. Also, if you are using the GameLift Server SDK, you may have to add these two lines to the GameLiftServerSDK.Build.cs file. PublicDefinitions.Add("USE_IMPORT_EXPORT");

This repository also has a working version of both the client and server sdk's working together, https://github.com/ZX-Diablo/UE4GameLift/tree/master/Plugins

Oh I used your fork but compiling wasn't successful but with added PublicDefinitions it works. Thank you man! As I can understand, compiler didn't see some definitions and wasn't able to compile, am I correct?

Also as I can see from the ZX-Diablo repo, he added PublicDefinitions to target platform Win64 (https://github.com/ZX-Diablo/UE4GameLift/blob/7bf71b2470270c1868cdafc5e24b6b68d5ae91bb/Plugins/GameLiftServerSDK/Source/GameLiftServerSDK/GameLiftServerSDK.Build.cs#L83) Is it not necessary to add this Definitions to Linux target build or it just won't work?

chris-gong commented 4 years ago

@TimSmolonski are you making a client for Linux or are you just trying to get the client sdk to build on the server for uploading to GameLift? Because if it's the latter, I would recommend excluding the GameLiftClientSDK from your server build if possible because there's no need for it to be in the server.