使用AWS-SDK-C 构建MacOS C 命令行应用程序

Build macOS C++ Command Line App With aws-sdk-c++

本文关键字:命令行 应用程序 MacOS AWS-SDK-C 构建 使用      更新时间:2023-10-16

我正在尝试了解MacOS 10.12.6(16G29)上Xcode 8.3.3(8E3004B)中的小示例命令行应用中的AWS-SDK-C 的工作流程。我遵循了在这里发布的说明,我可以cmake,制作并使安装良好。但是,当我尝试在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(显然)找不到它,并保释一个错误。

我在链接二进制期间与库构建阶段添加了.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);
}

我弄清楚了。我必须在自定义标头搜索路径中删除/usr/local/include的递归设置。

现在它编译了罚款。