Construindo o AWS SDK para C++ no Linux/macOS - AWS SDK para C++

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Construindo o AWS SDK para C++ no Linux/macOS

Para configurar o AWS SDK para C++, você mesmo pode criar o SDK diretamente da fonte ou baixar as bibliotecas usando um gerenciador de pacotes.

O código-fonte do SDK é separado em pacotes individuais por serviço. A instalação do SDK completo pode levar até uma hora. Instalar somente o subconjunto específico de serviços que seu programa usa diminui o tempo de instalação e também reduz o tamanho do disco. Para escolher quais serviços instalar, você precisa saber o nome do pacote de cada serviço que seu programa usa. Você pode ver a lista de diretórios de pacotes em aws/aws-sdk-cppon. GitHub O nome do pacote é o sufixo do nome do diretório do serviço.

aws-sdk-cpp\aws-cpp-sdk-<packageName> # Repo directory name and packageName aws-sdk-cpp\aws-cpp-sdk-s3 # Example: Package name is s3

Pré-requisitos

Você precisa de um mínimo de 4 GB de RAM para criar alguns dos maiores AWS clientes. O SDK pode falhar na criação dos tipos de instância t2.micro, t2.small e outros tipos de instâncias pequenas do Amazon EC2 devido à memória insuficiente.

Para usar o AWS SDK para C++, você precisa de um dos seguintes:

  • GNU Compiler Collection (GCC) 4.9 ou posterior, ou

  • Clang 3.3 ou posterior.

Requisitos adicionais para sistemas Linux

Você precisa ter os arquivos de cabeçalho (pacotes -dev) para libcurl, libopenssl, libuuid, zlib e, opcionalmente, libpulse para suporte do Amazon Polly. Você pode encontrar os pacotes usando o gerenciador de pacotes do sistema.

Como instalar os pacotes em sistemas baseados em Debian/Ubuntu
  • sudo apt-get install libcurl4-openssl-dev libssl-dev uuid-dev zlib1g-dev libpulse-dev
Para instalar os pacotes em sistemas Linux/Redhat/Fedora/CentOS baseados na Amazon
  • sudo yum install libcurl-devel openssl-devel libuuid-devel pulseaudio-libs-devel

Compilar o SDK do código-fonte

Você pode compilar o SDK do código-fonte usando ferramentas de linha de comandos como uma alternativa ao uso do vcpkg. Usando esse método, você pode personalizar sua compilação do SDK. Para obter informações sobre as opções disponíveis, consulte CMake Parâmetros.

Como compilar o SDK do código-fonte
  1. Instale CMake(versão mínima 3.13) e as ferramentas de construção relevantes para sua plataforma. É recomendável adicionar o cmake ao seu PATH. Para verificar sua versão do CMake, abra um prompt de comando e execute o comando cmake --version

  2. Em um prompt de comando, navegue até uma pasta onde você deseja armazenar o SDK.

  3. Acesse o código-fonte mais recente.

    A versão 1.11 usa submódulos git para agrupar dependências externas. Isso inclui as bibliotecas CRT descritas no Guia de referência de ferramentas AWS SDKs e ferramentas.

    Baixe ou clone a fonte do SDK a partir de aws/aws-sdk-cpp: GitHub

    • Clone com Git: HTTPS

      git clone --recurse-submodules https://github.com/aws/aws-sdk-cpp
    • Clone com Git: SSH

      git clone --recurse-submodules git@github.com:aws/aws-sdk-cpp.git
  4. Recomendamos que você armazene os arquivos de compilação gerados fora do diretório do código-fonte do SDK. Crie outro diretório para armazenar os arquivos de compilação, e navegue até essa pasta.

    mkdir sdk_build cd sdk_build
  5. Gere os arquivos de compilação executando cmake. Especifique na linha de comandos cmake se deseja criar uma versão de depuração ou lançamento. Escolha Debug em todo esse procedimento para executar uma configuração de depuração do código da sua aplicação. Escolha Release em todo esse procedimento para executar uma configuração de lançamento do código da sua aplicação. Sintaxe de comando:

    {path to cmake if not in PATH} {path to source location of aws-sdk-cpp} -DCMAKE_BUILD_TYPE=[Debug | Release] -DCMAKE_PREFIX_PATH={path to install} -DCMAKE_INSTALL_PREFIX={path to install}

    Para obter mais maneiras de modificar a saída da compilação, consulte CMakeParâmetros.

    nota

    Ao compilar em um Mac com um sistema de arquivos que não diferencia maiúsculas de minúsculas, confira a saída do comando pwd no diretório onde você executa a compilação. Garanta que a saída pwd use letras maiúsculas e minúsculas para nomes de diretórios, como /Users e Documents.

    Para gerar os arquivos de compilação, siga um destes procedimentos:

    • Gere arquivos de compilação (todos Serviços da AWS): Para criar o SDK inteiro, execute cmake, especificando se deseja criar uma versão de depuração ou lançamento. Por exemplo:

      cmake ../aws-sdk-cpp -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH=/usr/local/ -DCMAKE_INSTALL_PREFIX=/usr/local/

    • Gere arquivos de compilação (subconjunto Serviços da AWS): para criar somente um serviço ou pacotes de serviços específicos para o SDK, adicione o CMake BUILD_ONLY parâmetro, com os nomes dos serviços separados por ponto e vírgula. O exemplo a seguir compila somente o pacote de serviços do Amazon S3:

      cmake ../aws-sdk-cpp -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH=/usr/local/ -DCMAKE_INSTALL_PREFIX=/usr/local/ -DBUILD_ONLY="s3"
    nota

    Se você receber um erro Falha ao criar bibliotecas de terceiros, verifique sua versão do CMake executandocmake --version. Você deve usar a versão CMake mínima 3.13.

  6. Compile os binários do SDK. Se você estiver compilando o SDK completo, a operação poderá levar uma hora ou mais.

    cmake --build . --config=Debug
  7. Instale o SDK. Talvez seja necessário aumentar os privilégios dependendo do local onde você escolheu instalar.

    cmake --install . --config=Debug

Compilação para Android no Linux

Para realizar a compilação para Android, adicione -DTARGET_ARCH=ANDROID à sua linha de comandos do cmake. AWS SDK para C++ Inclui um arquivo CMake de conjunto de ferramentas que inclui o que você precisa referenciando as variáveis de ambiente apropriadas ()ANDROID_NDK. Para ver um exemplo de aplicativo, consulte Configurando um aplicativo Android com AWS SDK para C++