aws/aws-sdk-cpp

CodeDeployClient.h: No such file or directory while bulilding on Ubuntu 14.10

Closed this issue · 11 comments

I am getting following error while building on Ubuntu 14.10.

aws-sdk-cpp/aws-cpp-sdk-codedeploy/source/codedeployClient.cpp:26:45: fatal error: aws/codedeploy/CodeDeployClient.h: No such file or directory

I cant find CodeDeployClient.h anywhere.
Am I missing some build dependency ?
I think its related to issue #1

It looks like a bug I had thought we had fixed is still there. If you look
at the source you'll see that the file is there but the capitilization is
wrong. This certainly breaks case-sensitive unix builds. I'll get a fix in
asap. Sorry for the inconvenience. In the meantime, you can exclude that
directory from your build or change the #include statement to point to the
correct file.

On Wed, Sep 2, 2015 at 10:41 PM, Hemant Jain notifications@github.com
wrote:

I am getting following error while building on Ubuntu 14.10.

aws-sdk-cpp/aws-cpp-sdk-codedeploy/source/codedeployClient.cpp:26:45:
fatal error: aws/codedeploy/CodeDeployClient.h: No such file or directory

I cant find CodeDeployClient.h anywhere.
Am I missing some build dependency ?


Reply to this email directly or view it on GitHub
#3.

"The poet only asks to get his head into the heavens. It is the logician
who seeks to get the heavens into his head. And it is his head that splits"
--G. K. Chesterton-- "Orthodoxy"

I am able to build it after disabling few more targets.

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 61ddf90..cecbbb6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt

@@ -379,9 +379,9 @@ add_subdirectory(aws-cpp-sdk-elasticloadbalancing)
add_subdirectory(aws-cpp-sdk-opsworks)
add_subdirectory(aws-cpp-sdk-cloudfront)
add_subdirectory(aws-cpp-sdk-kms)
-add_subdirectory(aws-cpp-sdk-codedeploy)
+#add_subdirectory(aws-cpp-sdk-codedeploy)
add_subdirectory(aws-cpp-sdk-redshift)
-add_subdirectory(aws-cpp-sdk-iam)
+#add_subdirectory(aws-cpp-sdk-iam)
add_subdirectory(aws-cpp-sdk-ecs)
add_subdirectory(aws-cpp-sdk-datapipeline)
add_subdirectory(aws-cpp-sdk-glacier)
@@ -398,7 +398,7 @@ add_subdirectory(aws-cpp-sdk-sns)
add_subdirectory(aws-cpp-sdk-autoscaling)
add_subdirectory(aws-cpp-sdk-cloudformation)
add_subdirectory(aws-cpp-sdk-rds)
-add_subdirectory(aws-cpp-sdk-access-management)
+#add_subdirectory(aws-cpp-sdk-access-management)
add_subdirectory(aws-cpp-sdk-transfer)
add_subdirectory(aws-cpp-sdk-queues)

@@ -414,9 +414,9 @@ if(PLATFORM_ANDROID)
else()
add_subdirectory(aws-cpp-sdk-core-tests)
add_subdirectory(aws-cpp-sdk-dynamodb-integration-tests)
-add_subdirectory(aws-cpp-sdk-cognitoidentity-integration-tests)
-add_subdirectory(aws-cpp-sdk-sqs-integration-tests)
-add_subdirectory(aws-cpp-sdk-lambda-integration-tests)
+#add_subdirectory(aws-cpp-sdk-cognitoidentity-integration-tests)
+#add_subdirectory(aws-cpp-sdk-sqs-integration-tests)
+#add_subdirectory(aws-cpp-sdk-lambda-integration-tests)
add_subdirectory(aws-cpp-sdk-s3-integration-tests)
add_subdirectory(aws-cpp-sdk-identity-management-tests)
add_subdirectory(aws-cpp-sdk-cloudfront-integration-tests)

this should not be necessary at all, other than the code deploy update. Please post the output of

g++ --version

The default g++ on Ubuntu 14.04 is currently 4.8.2, which will not work. You have to do a backport and upgrade to 4.9.x on ubuntu 14.04. After this, if you still have problems, could you post the compiler output?

Also, I've confirmed that the bug has been fixed in our master branch internally. I'm not sure what happened with our export process but I'll be sending that out again shortly. I'm sorry for the inconvenience and I'll hopefully get this resolved for you today.

Ok.... I've found the problem. Git on Mac OSX, the machine I do the export from, is not case sensitive, so it did not pick up the rename.

git config --local -l
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true
remote.origin.url=https://github.com/awslabs/aws-sdk-cpp.git
remote.origin.fetch=+refs/heads/:refs/remotes/origin/
branch.master.remote=origin
branch.master.merge=refs/heads/master

core.ignorecase=true herein lies the problem. Whoever made this the default should be taken out back and given a good talking to. ;)

3eed2f2

Try it now.
Also my guess is that the reason you had to comment out the source that you did was because IAM wasn't compiling and most of the integration tests depend on IAM (to pull account id).

One thing I will advise though, is regex is not fully implemented until g++ 4.9.x so you will likely receive a segfault anytime you call GetAccountId() on access-management until you update your compiler.

As far as I know everything compiles properly on 4.8.2, but there are some hidden dragons in the regex implementation on that version.

hey Jonathan,

Thanks for your help.
I am doing a build with latest code.
Will update about results soon.

btw I am using g++ 4.9.1
g++ (Ubuntu 4.9.1-16ubuntu6) 4.9.1
you are right about IAM.

All case related errors are gone now.
Just one last build issue. Following warning is causing build failure :
src/aws-sdk-cpp/aws-cpp-sdk-transfer/source/transfer/UploadFileRequest.cpp: In lambda function: src/aws-sdk-cpp/aws-cpp-sdk-transfer/source/transfer/UploadFileRequest.cpp:927:263: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare] auto entryIter = std::find_if(listObjectsOutcome.GetResult().GetContents().cbegin(), listObjectsOutcome.GetResult().GetContents().cend(), [&](const Aws::S3::Model::Object& thisObject) { return (thisObject.GetKey() == GetKeyName() && thisObject.GetSize() == GetFileSize()); }); ^ At global scope: cc1plus: error: unrecognized command line option "-Wno-unused-private-field" [-Werror] cc1plus: all warnings being treated as errors

changing uint64_t to long long fixed this issue( m_fileSize is of long long type in all other source files):

diff --git a/aws-cpp-sdk-transfer/include/aws/transfer/S3FileRequest.h b/aws-cpp-sdk-transfer/include/aws/transfer/S3FileRequest.h
index 71fba2d..9669277 100644
--- a/aws-cpp-sdk-transfer/include/aws/transfer/S3FileRequest.h
+++ b/aws-cpp-sdk-transfer/include/aws/transfer/S3FileRequest.h
@@ -69,7 +69,7 @@ public:
virtual bool IsReady() const = 0;

 // For uploads, look at the file on disk, for downloads, request content manifest from S3

-inline virtual uint64_t GetFileSize() const { return m_fileSize; }
+inline virtual long long GetFileSize() const { return m_fileSize; }

 uint64_t GetProgressAmount() const;

protected:

you can close this case.