Compilar o AWS SDK para C++ no Windows - AWS SDK para C++

Compilar o AWS SDK para C++ no Windows

Para configurar o AWS SDK para C++, você pode compilar 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. É possível ver a lista de diretórios de pacotes em aws/aws-sdk-cpp no 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 clientes da AWS. 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 do seguinte:

  • Microsoft Visual Studio 2015 ou posterior,

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

  • Clang 3.3 ou posterior.

No Windows, o SDK é compilado com WinHTTP como cliente HTTP padrão. No entanto, o WinHTTP 1.0 não comporta o streaming bidirecional HTTP/2, o que é necessário para alguns Serviços da AWS, como o Amazon Transcribe e o Amazon Lex. Portanto, às vezes é necessário criar suporte ao curl com o SDK. Para ver todas as opções de download de curl disponíveis, consulte Versões e downloads do curl. Veja a seguir um método para compilar o SDK com suporte a curl:

Para compilar o SDK com suporte à biblioteca curl incluído
  1. Navegue até curl para Windows e baixe o pacote binário curl para Microsoft Windows.

  2. Descompacte o pacote em uma pasta no computador, por exemplo, C:\curl.

  3. Navegue até Certificados CA extraídos do Mozilla e baixe o arquivo cacert.pem. Esse arquivo Privacy Enhanced Mail (PEM) contém um pacote de certificados digitais válidos que são usados para verificar a autenticidade de sites seguros. Os certificados são distribuídos por empresas de autoridade de certificação (CA), como a GlobalSign e a Verisign.

  4. Mova o arquivo cacert.pem para a subpasta bin que você descompactou em uma etapa anterior, por exemplo, C:\curl\bin. Renomeie o arquivo para curl-ca-bundle.crt.

Além disso, o Microsoft Build Engine (MSBuild) deve poder localizar a dll do curl no procedimento a seguir. Portanto, você deve adicionar o caminho da pasta bin do curl à sua variável de ambiente PATH do Windows, por exemplo, set PATH=%PATH%;C:\curl\bin. Você deve adicionar isso sempre que abrir um novo prompt de comando para compilar o SDK. Você também pode definir a variável de ambiente globalmente nas configurações do sistema Windows para que a configuração seja lembrada.

Ao compilar o SDK do código-fonte no procedimento a seguir, consulte a Etapa 5 (Gerar arquivos de compilação) para ver a sintaxe de comando necessária para criar o curl em seu SDK.

Ao escrever seu código, você deve definir caFile no Configurar clientes de serviço no código do AWS SDK para C++ no código como o local do seu arquivo de certificado. Para ver um exemplo de uso do Amazon Transcribe, consulte transcribe-streaming no Repositório de exemplos de código da AWS no GitHub.

Compilar o SDK do código-fonte

Você pode compilar o SDK do código-fonte usando ferramentas de linha de comandos. Usando esse método, você pode personalizar sua compilação do SDK. Para acessar informações sobre as opções disponíveis, consulte Parâmetros do CMake. Veja as três etapas principais: Primeiro, você deve compilar os arquivos usando o CMake. Depois, você vai usar o MSBuild para compilar os binários do SDK que funcionam com seu sistema operacional e criar a cadeia de ferramentas. Em terceiro lugar, você vai instalar ou copiar os binários no local correto na máquina de desenvolvimento.

Como compilar o SDK do código-fonte
  1. Instale o CMake (versão mínima 3.13) e as ferramentas de compilação relevantes para sua plataforma. É recomendável adicionar o cmake ao seu PATH. Para conferir 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 e AWS SDKs.

    Baixe ou clone o código-fonte do SDK do aws/aws-sdk-cpp no 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. Para Windows, o local de instalação do SDK normalmente é \Program Files (x86)\aws-cpp-sdk-all\. 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 destination}

    Para ver mais maneiras de modificar a saída da compilação, consulte Parâmetros do CMake.

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

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

      cmake "..\aws-sdk-cpp" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH="C:\Program Files (x86)\aws-cpp-sdk-all"

    • Gere arquivos de compilação (subconjunto Serviços da AWS): para compilar somente um serviço específicos ou pacotes de serviços para o SDK, adicione o parâmetro BUILD_ONLY do CMake, 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 -DBUILD_ONLY="s3" -DCMAKE_PREFIX_PATH="C:\Program Files (x86)\aws-cpp-sdk-all"
    • Gere arquivos de compilação (com curl): depois de concluir os pré-requisitos do curl, três opções adicionais de linha de comandos do cmake são necessárias para incluir o suporte ao curl no SDK: FORCE_CURL, CURL_INCLUDE_DIR e CURL_LIBRARY. Por exemplo:

      cmake ..\aws-sdk-cpp -DCMAKE_BUILD_TYPE=Debug -DFORCE_CURL=ON -DCURL_INCLUDE_DIR='C:/curl/include' -DCURL_LIBRARY='C:/curl/lib/libcurl.dll.a' -DCMAKE_PREFIX_PATH="C:\Program Files (x86)\aws-cpp-sdk-all"
    nota

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

  6. Compile os binários do SDK. Se você estiver compilando o SDK completo, essa etapa pode levar uma hora ou mais. Sintaxe de comando:

    {path to cmake if not in PATH} --build . --config=[Debug | Release]

    cmake --build . --config=Debug
    nota

    Se você encontrar o erro A execução do código não pode prosseguir... dll não encontrada. A reinstalação do programa pode resolver esse problema.”, repita o comando cmake novamente.

  7. Abra um prompt de comando com privilégios de administrador para instalar o SDK no local especificado anteriormente usando o parâmetro CMAKE_PREFIX_PATH. Sintaxe de comando:

    {path to cmake if not in PATH} --install . --config=[Debug | Release]

    cmake --install . --config=Debug

Compilação para Android no Windows

Para realizar a compilação para Android, adicione -DTARGET_ARCH=ANDROID à sua linha de comandos do cmake. O AWS SDK para C++ inclui um arquivo de cadeia de ferramentas do CMake que contém o que você precisa fazendo referência às variáveis de ambiente apropriadas (ANDROID_NDK).

Para compilar o SDK para Android no Windows, você precisa executar o cmake por meio de um prompt de comando do desenvolvedor do Visual Studio (2015 ou posterior). Você também precisará do NMAKE NMAKE instalado e dos comandos git e patch em seu caminho. Se você tiver o git instalado em um sistema Windows, provavelmente encontrará o patch em um diretório irmão (.../Git/usr/bin/). Depois de verificar esses requisitos, sua linha de comandos do cmake mudará um pouco para usar o NMAKE.

cmake -G "NMake Makefiles" `-DTARGET_ARCH=ANDROID` <other options> ..

O NMAKE é compilado em série. Para compilar mais rapidamente, recomendamos que você instale o JOM como alternativa ao NMAKE e, depois, altere a invocação do cmake da seguinte forma:

cmake -G "NMake Makefiles JOM" `-DTARGET_ARCH=ANDROID` <other options> ..

Para ver um exemplo de aplicação, consulte Configurar uma aplicação Android com AWS SDK para C++.