2016-09-02 3 views
1

Ich arbeite an dem Tutorial in diesem link. Ich habe alle Bibliotheken und aws-cpp-sdk installiert. Ich habe aws Ordner in/usr/local/include.AwsStringStream.h: Keine solche Datei oder Verzeichnis

When I make the cpp file, I have error as 
sudo make 
-- Configuring done 
-- Generating done 
-- Build files have been written to: /home/Softwares/Projects/S3upload/build 
[100%] Building CXX object CMakeFiles/S3upload.dir/S3upload.cpp.o 
/home/Softwares/Projects/S3upload/S3upload.cpp:4:56: fatal error: aws/core/utils/memory/stl/AwsStringStream.h: No such file or directory 
#include <aws/core/utils/memory/stl/AwsStringStream.h> 
                 ^
compilation terminated. 
make[2]: *** [CMakeFiles/S3upload.dir/S3upload.cpp.o] Error 1 
make[1]: *** [CMakeFiles/S3upload.dir/all] Error 2 
make: *** [all] Error 2 

Was könnte falsch sein? Meine CPP-Datei ist

#include <aws/s3/S3Client.h> 
#include <aws/s3/model/PutObjectRequest.h> 
#include <aws/s3/model/GetObjectRequest.h> 
#include <aws/core/utils/memory/stl/AwsStringStream.h> 

using namespace Aws::S3; 
using namespace Aws::S3::Model; 


static const char* KEY = "xxxxxxxxxxxx";//"s3_cpp_sample_key"; 
static const char* BUCKET = "xxxxxx";//"s3-cpp-sample-bucket"; 

int main() 
{ 
    S3Client client; 

    //first put an object into s3 
    PutObjectRequest putObjectRequest; 
    putObjectRequest.WithKey(KEY) 
      .WithBucket(BUCKET); 

    //this can be any arbitrary stream (e.g. fstream, stringstream etc...) 
    auto requestStream = Aws::MakeShared<Aws::StringStream>("s3-sample"); 
    *requestStream << "Hello World!"; 

    //set the stream that will be put to s3 
    putObjectRequest.SetBody(requestStream); 

    auto putObjectOutcome = client.PutObject(putObjectRequest); 

    if(putObjectOutcome.IsSuccess()) 
    { 
     std::cout << "Put object succeeded" << std::endl; 
    } 
    else 
    { 
     std::cout << "Error while putting Object " << putObjectOutcome.GetError().GetExceptionName() << 
       " " << putObjectOutcome.GetError().GetMessage() << std::endl; 
    } 


    return 0; 
} 

Mein CMakeLists.txt ist

cmake_minimum_required(VERSION 2.8) 
project(S3upload) 

#this will locate the aws sdk for c++ package so that we can use its targets 
#/usr/src/Softwares/AWSC++SDK/aws-sdk-cpp/build/ 
find_package(aws-sdk-cpp) 

add_executable(S3upload S3upload.cpp) 

#since we called find_package(), this will resolve all dependencies, header files, and cflags necessary 
#to build and link your executable. 
target_link_libraries(S3upload aws-cpp-sdk-s3) 

Antwort

2

Sie Sind sicher, dass aws/core/utils/memory/stl/AwsStringStream.h unter/user/local/include? Beachten Sie, dass der Dateiname Groß- und Kleinschreibung unterscheidet. Sind Sie sicher, dass der Dateiname AwsStringStream.h lautet?

+0

Ja aws-Ordner ist in/usr/local/include bei der Installation enthalten. Ja, sehr sicher ist der Dateiname AwsStringStream.h. – batuman

+0

Yeah Dateiname hat ein Problem. Ich habe den Link kopiert und es hat ein Problem. Jetzt schreibe ich den Dateinamen neu und kein Fehler mehr. – batuman

0

Versuchen Sie, Ihre Header-Dateien in Anführungszeichen setzen und überprüfen, um zu sehen, ob sie wirklich im richtigen Verzeichnis sind

Verwandte Themen