Compilación del AWS SDK para C++ en Windows - AWS SDK para C++

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Compilación del AWS SDK para C++ en Windows

Para configurar el AWS SDK para C++, puede compilar el SDK usted mismo directamente desde el código fuente o descargar las bibliotecas utilizando un administrador de paquetes.

El código fuente del SDK se divide en paquetes individuales por servicio. La instalación del SDK completo puede tardar hasta una hora. Si se instala solo el subconjunto específico de servicios que utiliza el programa, se reduce el tiempo de instalación y también el tamaño del disco. Para elegir qué servicios instalar, es necesario que conozca el nombre del paquete de cada servicio que utiliza el programa. La lista de directorios de paquetes está en aws/aws-sdk-cpp en GitHub. El nombre del paquete es el sufijo del nombre del directorio del servicio.

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

Requisitos previos

Necesita 4 GB de RAM como mínimo para compilar algunos de los clientes de AWS de mayor tamaño. Es posible que el SDK no se pueda compilar en los tipos de instancia t2.micro, t2.small y otros tipos de instancias pequeñas de Amazon EC2 por falta de memoria.

Para utilizar el AWS SDK para C++, necesita tener una de estas herramientas:

  • Microsoft Visual Studio 2015 o versiones posteriores

  • GNU Compiler Collection (GCC) 4.9 o versiones posteriores o

  • Clang 3.3 o versiones posteriores.

En Windows, el SDK se crea con WinHTTP como cliente HTTP predeterminado. Sin embargo, WinHTTP 1.0 no admite la transmisión bidireccional HTTP/2, que es obligatoria con algunos Servicios de AWS, como Amazon Transcribe y Amazon Lex. Por lo tanto, a veces será necesario desarrollar la compatibilidad con curl con el SDK. Para ver todas las opciones de descarga de curl disponibles, consulte Versiones y descargas de curl. A continuación, se muestra un método para crear el SDK compatible con curl:

Para compilar el SDK con compatibilidad con la biblioteca curl incluida
  1. Vaya a curl para Windows y descargue el paquete binario de curl para Microsoft Windows.

  2. Desempaquete el paquete en una carpeta de su equipo; por ejemplo, C:\curl.

  3. Vaya a los certificados de CA extraídos de Mozilla y descargue el archivo cacert.pem. Este archivo de Privacy Enhanced Mail (PEM) contiene un paquete de certificados digitales válidos que se utilizan para verificar la autenticidad de los sitios web seguros. Estos certificados los distribuyen empresas de entidades de certificación (CA), como GlobalSign y Verisign.

  4. Mueva el archivo cacert.pem a la subcarpeta bin que ha desempaquetado en un paso anterior; por ejemplo, C:\curl\bin. Cambie el nombre del archivo a curl-ca-bundle.crt

Además, Microsoft Build Engine (MSBuild) debe poder localizar el dll de curl en el procedimiento que sigue a continuación. Por lo tanto, debe agregar la ruta de la carpeta del bin de curl a la variable de entorno PATH de Windows; por ejemplo, set PATH=%PATH%;C:\curl\bin. Debe agregarla cada vez que abra una nueva línea de comandos para compilar el SDK. O también, puede establecer la variable de entorno de forma global en la configuración del sistema de Windows para recordar la configuración.

Al compilar el SDK desde el código fuente en el procedimiento que sigue a continuación, consulte el paso 5 (Generar archivos de compilación) para conocer la sintaxis de comandos necesaria para incorporar curl a su SDK.

Al escribir el código, debe establecer la ubicación del archivo de certificado como caFile en Configuración de clientes de servicio en código de AWS SDK para C++. Para ver un ejemplo de cómo usar Amazon Transcribe, consulte transcribe-streaming en el Repositorio de ejemplos de código de AWS en GitHub.

Compilación del SDK desde el código fuente

Utilice las herramientas de línea de comandos para compilar el SDK desde el código fuente. Puede personalizar la compilación del SDK con este método. Para obtener información sobre las opciones disponibles, consulte Parámetros de CMake. Estos son los tres pasos principales: En primer lugar, compile los archivos con CMake. En segundo lugar, utilice MSBuild para crear los binarios del SDK que funcionan con su sistema operativo y para crear la cadena de herramientas. En tercer lugar, instale o copie los binarios en la ubicación correcta del equipo donde se está realizando el desarrollo.

Para compilar el SDK desde el código fuente
  1. Instale CMake (versión 3.13 como mínimo) y las herramientas de compilación que corresponda a su plataforma. Le recomendamos añadir cmake al PATH. Para comprobar su versión de CMake, abra una línea de comandos y ejecute el comando cmake --version

  2. Cuando se lo indique el sistema, abra la carpeta en la que desee almacenar el SDK.

  3. Obtenga el código fuente más reciente.

    La versión 1.11 utiliza submódulos de git para empaquetar las dependencias externas. Esto incluye las bibliotecas CRT descritas en la Guía de referencia de las herramientas y los SDK de AWS.

    Descargue o clone el código fuente del SDK desde aws/aws-sdk-cpp en GitHub:

    • Clonación con Git: HTTPS

      git clone --recurse-submodules https://github.com/aws/aws-sdk-cpp
    • Clonación con Git: SSH

      git clone --recurse-submodules git@github.com:aws/aws-sdk-cpp.git
  4. Le recomendamos que guarde los archivos de compilación generados fuera del directorio de origen del SDK. Cree un nuevo directorio para almacenar los archivos de compilación y vaya hasta esa carpeta.

    mkdir sdk_build cd sdk_build
  5. Ejecute cmake para generar los archivos de compilación. Especifique en la línea de comandos de cmake si desea crear una versión Debug o una Release. Elija Debug a lo largo de todo este procedimiento para ejecutar una configuración de depuración del código de la aplicación. Elija Release a lo largo de todo este procedimiento para ejecutar una configuración de lanzamiento del código de la aplicación. En Windows, la ubicación de instalación del SDK suele ser \Program Files (x86)\aws-cpp-sdk-all\. Sintaxis de comandos:

    {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 más formas de modificar el resultado de la compilación, consulte Parámetros de CMake.

    Para generar los archivos de compilación, lleve a cabo una de las siguientes acciones:

    • Genere archivos de compilación (todos los Servicios de AWS): para compilar todo el SDK, ejecute cmake y especifique si desea compilar una versión Debug o Release. Por ejemplo:

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

    • Genere archivos de compilación (subconjunto de los Servicios de AWS): para crear solo un servicio o paquetes de servicios específicos para el SDK, añada el parámetro BUILD_ONLY de CMake, con los nombres de los servicios separados por punto y coma. El siguiente ejemplo compila únicamente el paquete de servicios Amazon S3:

      cmake ..\aws-sdk-cpp -DCMAKE_BUILD_TYPE=Debug -DBUILD_ONLY="s3" -DCMAKE_PREFIX_PATH="C:\Program Files (x86)\aws-cpp-sdk-all"
    • Genere archivos de compilación (con curl): después de completar los requisitos previos de curl, necesita tres opciones adicionales de línea de comandos de cmake para incluir la compatibilidad con curl en el SDK: FORCE_CURL, CURL_INCLUDE_DIR y CURL_LIBRARY. Por ejemplo:

      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

    Si recibe el mensaje de error Failed to build third-party libraries, ejecute cmake --version para comprobar su versión de CMake. Es necesario usar la versión 3.13 como mínimo de CMake.

  6. Compile los binarios del SDK. Si va a compilar todo el SDK, este paso puede tardar una hora o más. Sintaxis de comandos:

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

    cmake --build . --config=Debug
    nota

    Si recibe el mensaje de error The code execution cannot proceed… dll not found. Reinstalling the program may fix this problem., pruebe a ejecutar el comando cmake de nuevo.

  7. Abra una línea de comandos con privilegios de administrador para instalar el SDK en la ubicación especificada anteriormente mediante el parámetroCMAKE_PREFIX_PATH. Sintaxis de comandos:

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

    cmake --install . --config=Debug

Compilación para Android en Windows

Para compilar para Android, añada -DTARGET_ARCH=ANDROID a su línea de comandos de cmake. El AWS SDK para C++ incluye un archivo de cadena de herramientas de CMake que hace referencia a las variables de entorno adecuadas (ANDROID_NDK) para proporcionarle todo lo que necesita.

Para compilar el SDK para Android en Windows, debe ejecutar cmake desde la línea de comandos para desarrolladores de Visual Studio (2015 o versiones posteriores). También necesitará tener NMAKE NMAKE instalado y los comandos git y patch en su ruta. Si ha instalado git en un sistema Windows, lo más probable es que encuentre patch en un directorio secundario (.../Git/usr/bin/). Una vez que haya verificado estos requisitos, su línea de comandos de cmake cambiará ligeramente para usar NMAKE.

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

NMAKE compila en serie. Para compilar más rápidamente, le recomendamos que instale JOM como alternativa a NMAKE y que cambie, a continuación, la invocación de cmake de la siguiente manera:

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

Para ver un ejemplo de aplicación, consulte Cómo configurar una aplicación de Android con AWS SDK para C++.