-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unable to compile AWS SDK with Visual Studio 2017 #2656
Comments
Hello @ayushgupta-aic , Thank you very much for your submission. If you intend to use Best, Yasmine |
@yasminetalby : Thanks for your response. More specifically, while trying to compile the aws-cpp-sdk-core project. |
Hello @ayushgupta-aic , Thank you very much for your response and for providing the logs. It seems that there is a conflict issue with the Windows SDK definition of UUID Best, Yasmine |
Hello @ayushgupta-aic , This issue should be fixed in v1.11.162 of the SDK. Thank you very much for your collaboration. Best regards, Yasmine |
hi @yasminetalby . I am still encountering the same errors. Tried with both v1.11.162 and v1.11.163 |
@yasminetalby : Any update on this? |
Are you still running into this with the latest version of the sdk? I've tried reproducing this, but I can't seem to reproduce the same error that you are seeing. |
Hi Joseph,
Can you please let me know which version/ tag I should try with?
Thanks,
Ayush
…________________________________
From: Joseph Klix ***@***.***>
Sent: Thursday, March 14, 2024 3:20 AM
To: aws/aws-sdk-cpp ***@***.***>
Cc: Ayush Gupta ***@***.***>; Mention ***@***.***>
Subject: Re: [aws/aws-sdk-cpp] Unable to compile AWS SDK with Visual Studio 2017 (Issue #2656)
Are you still running into this with the latest version of the sdk? I've tried reproducing this, but I can't seem to reproduce the same error that you are seeing.
—
Reply to this email directly, view it on GitHub<#2656 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ALLCYEX5YQERUASDZLY5AZDYYDC3JAVCNFSM6AAAAAA4KFEIIGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJVHEZDIMRVGM>.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Using the latest version is always our recommendation. Currently that is 1.11.285 |
Hi Joseph,
I noticed that the latest (1.11.285) doesn't quite build correctly.
I am using cmake this time. The command line is:
cmake D:\work\awscppsdk\aws-sdk-cpp -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=D:\work\awscppsdk\output\release -DBUILD_ONLY="core;s3;glacier;sqs;sns" -DFORCE_SHARED_CRT=FALSE -DBUILD_SHARED_LIBS=FALSE -DENABLE_TESTING=FALSE
Note that i am trying to build a static library that i can link to.
However, when i tried to link to it from my project in visual studio 2019, i got errors:
3>LIBCMT.lib(initializers.obj) : warning LNK4098: defaultlib 'msvcrt.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
3>aws-c-common.lib(allocator.obj) : error LNK2001: unresolved external symbol __imp__aligned_free
3>aws-c-common.lib(allocator.obj) : error LNK2001: unresolved external symbol __imp__aligned_malloc
3>aws-c-common.lib(allocator.obj) : error LNK2001: unresolved external symbol __imp__aligned_realloc
3>aws-c-common.lib(date_time.obj) : error LNK2001: unresolved external symbol __imp_modf
3>aws-c-common.lib(date_time.obj) : error LNK2001: unresolved external symbol __imp_round
3>aws-c-common.lib(environment.obj) : error LNK2001: unresolved external symbol __imp__putenv_s
3>aws-c-common.lib(process.obj) : error LNK2001: unresolved external symbol __imp__getpid
3>D:\Work\gateway\code\user\x64\Release\awsext.dll : fatal error LNK1120: 7 unresolved externals
Upon further inspection of , I found that the aws-c-common project, I noticed that it had incorrect configuration. The runtime library is set to Multi-threaded DLL (/MD). It should be Multi-threaded (/MT). For rest of the projects in AWSSDK.sln, it seems correct. Once I fixed that manually in the project and used cmake to build again, I did not get the above errors while linking with the libraries. However, I did get another error:
error LNK2005: "public: class std::basic_iostream<char,struct std::char_traits<char> > & __cdecl Aws::Utils::Stream::ResponseStream::GetUnderlyingStream(void)const " ***@***.***@***@***.***@aws@@***@***.******@***.***@std@@@std@@xz) already defined in aws-cpp-sdk-core.lib(ub_core.obj)
fatal error LNK1169: one or more multiply defined symbols found
…________________________________
From: Joseph Klix ***@***.***>
Sent: 14 March 2024 22:08
To: aws/aws-sdk-cpp ***@***.***>
Cc: Ayush Gupta ***@***.***>; Mention ***@***.***>
Subject: Re: [aws/aws-sdk-cpp] Unable to compile AWS SDK with Visual Studio 2017 (Issue #2656)
Using the latest version is always our recommendation. Currently that is 1.11.285<https://github.com/aws/aws-sdk-cpp/releases/tag/1.11.285>
—
Reply to this email directly, view it on GitHub<#2656 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ALLCYEX3EAPQJCFNGVKEHZLYYHHAXAVCNFSM6AAAAAA4KFEIIGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSOJXHA3TGMJYHE>.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Can you add I'm able to successfully build on windows with the following:
Can you make sure your build and install directories are clean while doing this? |
Hi Joesph,
I tried with tag 1.11.297. Here are my observations:
*
Using the DAWS_STATIC_MSVC_RUNTIME_LIBRARY flag, the libs now build correctly (all static)
*
However, when i try to link to the libs in my Visual Studio project I get an error public: class std::basic_iostream<char,struct std::char_traits<char> > & __cdecl Aws::Utils::Stream::ResponseStream::GetUnderlyingStream(void)const " ***@***.***@***@***.***@aws@@***@***.******@***.***@std@@@std@@xz) already defined in aws-cpp-sdk-core.lib(ub_core.obj)
More specifically, if I have narrowed it down to:
objectRequest.WithBucket(awsBucketName).WithKey(awsObjectName);
getObjectOutcome = pS3Client->GetObject(objectRequest);
if (getObjectOutcome.IsSuccess())
{
Aws::OFStream local_file;
local_file.open(cachePath, std::ios::out | std::ios::binary);
local_file << getObjectOutcome.GetResult().GetBody().rdbuf(); // Having this in the code results in the above mentioned linker error. Worked fine with version 1.7.365 version of the SDK.
auto meta = getObjectOutcome.GetResult().GetMetadata();
LOG_INFO ("Fetched %S/%s", bucketName, awsObjectName.c_str());
}
…________________________________
From: Joseph Klix ***@***.***>
Sent: 23 March 2024 00:15
To: aws/aws-sdk-cpp ***@***.***>
Cc: Ayush Gupta ***@***.***>; Mention ***@***.***>
Subject: Re: [aws/aws-sdk-cpp] Unable to compile AWS SDK with Visual Studio 2017 (Issue #2656)
Can you add -DAWS_STATIC_MSVC_RUNTIME_LIBRARY=ON to your cmake config. Also just as a reminder please make sure you're using the same MSVC runtime version.
I'm able to successfully build on windows with the following:
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="<install-path>" -DBUILD_ONLY="s3;glacier;sqs;sns;core" -DFORCE_SHARED_CRT=OFF -DBUILD_SHARED_LIBS=OFF -DENABLE_TESTING=OFF -DAWS_STATIC_MSVC_RUNTIME_LIBRARY=ON
Can you make sure your build and install directories are clean while doing this?
—
Reply to this email directly, view it on GitHub<#2656 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ALLCYESRRURUIPAXTZ3NEPTYZR33ZAVCNFSM6AAAAAA4KFEIIGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMJVG4YDIOBZGA>.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Can you take a look at this guide I'm working for how to build this sdk in Visual Studio. Please let me know if you have any questions and/or if you still can't get the sdk to build in Visual Studio 2017 |
Greetings! It looks like this issue hasn’t been active in longer than a week. We encourage you to check if this is still an issue in the latest release. Because it has been longer than a week since the last update on this, and in the absence of more information, we will be closing this issue soon. If you find that this is still a problem, please feel free to provide a comment or add an upvote to prevent automatic closure, or if the issue is already closed, please feel free to open a new one. |
Describe the bug
Unable to compile the v1.11 (or even the main branch) CPP SDK source code using VS 2017 and Windows SDK 10.0.22000.0
Expected Behavior
Expect to compile fine
Current Behavior
C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\um\rpcnsi.h(368): error C2872: 'UUID': ambiguous symbol (compiling source file C:\work\awscppsdk\aws-sdk-cpp-build\src\aws-cpp-sdk-core\ub_core.cpp)
13>C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\shared\rpcdce.h(83): note: could be 'GUID UUID' (compiling source file C:\work\awscppsdk\aws-sdk-cpp-build\src\aws-cpp-sdk-core\ub_core.cpp)
13>C:\work\awscppsdk\aws-sdk-cpp\src\aws-cpp-sdk-core\include\aws/core/utils/UUID.h(21): note: or 'Aws::Utils::UUID' (compiling source file C:\work\awscppsdk\aws-sdk-cpp-build\src\aws-cpp-sdk-core\ub_core.cpp)
Reproduction Steps
Build commands:
cmake -G "Visual Studio 15 2017 Win64" c:\work\awscppsdk\aws-sdk-cpp -DCMAKE_BUILD_TYPE=Release -DBUILD_ONLY="core;s3;glacier;sqs;sns" -DBUILD_SHARED_LIBS=FALSE -DFORCE_SHARED_CRT=FALSE -DENABLE_TESTING=FALSE
followed by compilation of the projects in Visual Studio 2017
Possible Solution
No response
Additional Information/Context
No response
AWS CPP SDK version used
1.11
Compiler and Version used
Visual Studio 2017/ Windows SDK 10.0.22000.0
Operating System and version
Windows 11
The text was updated successfully, but these errors were encountered: