使用aws-sdk-c ++构建macOS C ++命令行应用程序

时间:2017-09-01 00:31:02

标签: c++ xcode aws-sdk-cpp

我正在尝试了解在macOS 10.12.6(16G29)上的Xcode 8.3.3(8E3004b)中的小示例命令行应用程序中包含aws-sdk-c ++的工作流程。我按照here发布的指示进行了操作,我可以使用cmake,make和make install。但是,当我尝试在Xcode中构建命令行应用程序时,我收到此错误:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/ctime:56:9: No member named 'clock_t' in the global namespace

Xcode给了我大约20个并且放弃了。我的标题搜索路径设置为$(SRCROOT)/test/include,递归。看起来Xcode可以找到AWS SDK头文件,但不能找到标准的系统头文件。如果我删除了AWS SDK的路径,那么Xcode(显然)无法找到它并因一个错误而失败。

我在Link Binary With Libraries构建阶段添加.a库,所以我想如果我包含了我可以使用它们的头文件。我显然没有在这里考虑任何事情,所以任何帮助都会受到赞赏。

我正在尝试编译的C ++文件:

#include <iostream>
#include <aws/core/Aws.h>
#include <aws/s3/S3Client.h>
#include <aws/s3/model/Bucket.h>


int main(int argc, char** argv)
{
    Aws::SDKOptions options;
    Aws::InitAPI(options);
    {
        Aws::S3::S3Client s3_client;
        auto outcome = s3_client.ListBuckets();

        if (outcome.IsSuccess()) {
            std::cout << "Your Amazon S3 buckets:" << std::endl;

            Aws::Vector<Aws::S3::Model::Bucket> bucket_list =
            outcome.GetResult().GetBuckets();

            for (auto const &bucket: bucket_list) {
                std::cout << "  * " << bucket.GetName() << std::endl;
            }
        } else {
            std::cout << "ListBuckets error: "
            << outcome.GetError().GetExceptionName() << " - "
            << outcome.GetError().GetMessage() << std::endl;
        }
    }
    Aws::ShutdownAPI(options);
}

1 个答案:

答案 0 :(得分:0)

我明白了。我必须从自定义标头搜索路径中的/usr/local/include中删除递归设置。

现在编译得很好。