Compilación del AWS SDK para C++ en Linux/macOS - AWS SDK para C++

Compilación del AWS SDK para C++ en Linux/macOS

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:

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

  • Clang 3.3 o versiones posteriores.

Requisitos adicionales para los sistemas de Linux

También tiene que tener los archivos de encabezado (paquetes -dev) para libcurl, libopenssl, libuuid, zlib y, de manera opcional, libpulse para la compatibilidad con Amazon Polly. Puede encontrar los paquetes con el administrador de paquetes del sistema.

Para instalar los paquetes en sistemas basados en Debian/Ubuntu
  • sudo apt-get install libcurl4-openssl-dev libssl-dev uuid-dev zlib1g-dev libpulse-dev
Para instalar los paquetes en sistemas basados en Amazon Linux/RedHat/Fedora/CentOS
  • sudo yum install libcurl-devel openssl-devel libuuid-devel pulseaudio-libs-devel

Compilación del SDK desde el código fuente

Utilice las herramientas de la línea de comandos para compilar el SDK desde el código fuente como alternativa al uso de vcpkg. Puede personalizar la compilación del SDK con este método. Para obtener información sobre las opciones disponibles, consulte Parámetros de CMake.

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. 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} -DCMAKE_INSTALL_PREFIX={path to install}

    Para ver más formas de modificar el resultado de la compilación, consulte Parámetros de CMake.

    nota

    Al compilar en un Mac con un sistema de archivos que no distinga entre mayúsculas y minúsculas, compruebe el resultado del comando pwd en el directorio donde ejecute la compilación. Asegúrese de que el resultado pwd utilice mayúsculas y minúsculas para los nombres de directorio, como /Users y Documents.

    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=/usr/local/ -DCMAKE_INSTALL_PREFIX=/usr/local/

    • 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 -DCMAKE_PREFIX_PATH=/usr/local/ -DCMAKE_INSTALL_PREFIX=/usr/local/ -DBUILD_ONLY="s3"
    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, la operación puede tardar una hora o más.

    cmake --build . --config=Debug
  7. Instale el SDK. Es posible que tenga que aumentar los privilegios en función de la ubicación en la que decida realizar la instalación.

    cmake --install . --config=Debug

Compilación para Android en Linux

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 ver un ejemplo de aplicación, consulte Cómo configurar una aplicación de Android con AWS SDK para C++.