

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á.

# Solução de problemas de compilação do AWS SDK for C\$1\$1
<a name="troubleshooting-cmake"></a>

Ao criar a AWS SDK para C\$1\$1 partir do código-fonte, alguns dos seguintes problemas comuns de compilação podem surgir.

**Topics**
+ [CMake Erro: Não foi possível encontrar um arquivo de configuração de pacote fornecido por "AWSSDK”](#could-not-find-package)
+ [CMake Erro: não foi possível encontrar o arquivo de carregamento (e você está no SDK versão 1.8)](#could-not-load-file)
+ [CMake Erro: Não foi possível encontrar o arquivo de carregamento](#could-not-load-file2)
+ [Erro de rutime: não é possível continuar porque a `aws-*.dll` não foi encontrada.](#dll-was-not-found)

## CMake Erro: Não foi possível encontrar um arquivo de configuração de pacote fornecido por "AWSSDK”
<a name="could-not-find-package"></a>

CMake gera o seguinte erro se não conseguir encontrar o SDK instalado.

```
1> [CMake] CMake Error at C:\CodeRepos\CMakeProject1\CMakeLists.txt:4 (find_package):
1> [CMake]   Could not find a package configuration file provided by "AWSSDK" with any
1> [CMake]   of the following names:
1> [CMake] 
1> [CMake]     AWSSDKConfig.cmake
1> [CMake]     awssdk-config.cmake
1> [CMake] 
1> [CMake]   Add the installation prefix of "AWSSDK" to CMAKE_PREFIX_PATH or set
1> [CMake]   "AWSSDK_DIR" to a directory containing one of the above files.  If "AWSSDK"
1> [CMake]   provides a separate development package or SDK, be sure it has been
1> [CMake]   installed.
```

Para resolver esse erro, diga CMake onde encontrar o SDK instalado (por exemplo, a pasta que foi gerada como resultado da instalação do SDK ([Windows](setup-windows.md), [Linux/macOS](setup-linux.md)). Insira o comando a seguir antes da primeira chamada para `find_package()` no arquivo `CMakeLists.txt`. Consulte [Criação de um aplicativo simples usando o AWS SDK for C\$1\$1](build-cmake.md) para ver um exemplo. 

```
list(APPEND CMAKE_PREFIX_PATH "C:\\Program Files (x86)\\aws-cpp-sdk-all\\lib\\cmake")
```

## CMake Erro: não foi possível encontrar o arquivo de carregamento (e você está no SDK versão 1.8)
<a name="could-not-load-file"></a>

CMake gera o seguinte erro se não conseguir encontrar as bibliotecas instaladas.

```
1> [CMake]   include could not find load file:
1> [CMake] 
1> [CMake]     C:/Program Files (x86)/aws-cpp-sdk-all/lib/aws-c-common/cmake/static/aws-c-common-targets.cmake

1> [CMake]   include could not find load file:
1> [CMake] 
1> [CMake]     C:/Program Files (x86)/aws-cpp-sdk-all/lib/aws-checksums/cmake/static/aws-checksums-targets.cmake
1> [CMake]   include could not find load file:
1> [CMake] 
1> [CMake]     C:/Program Files (x86)/aws-cpp-sdk-all/lib/aws-checksums/cmake/static/aws-checksums-targets.cmake
```

Para resolver esse erro, diga CMake onde encontrar o SDK instalado (por exemplo, a pasta que foi gerada como resultado da instalação do SDK ([Windows](setup-windows.md), [Linux/macOS](setup-linux.md)). Insira os comandos a seguir antes da primeira chamada para `find_package()` no arquivo `CMakeLists.txt`. Consulte [Criação de um aplicativo simples usando o AWS SDK for C\$1\$1](build-cmake.md) para ver um exemplo. 

```
#Set the location of where Windows can find the installed libraries of the SDK.
if(MSVC)
    string(REPLACE ";" "/aws-cpp-sdk-all;" SYSTEM_MODULE_PATH "${CMAKE_SYSTEM_PREFIX_PATH}/aws-cpp-sdk-all")
    list(APPEND CMAKE_PREFIX_PATH ${SYSTEM_MODULE_PATH})
endif()
```

Essa solução é somente para a v1.8 do SDK porque essas dependências são tratadas de forma diferente nas versões posteriores. A versão 1.9 resolve esses problemas introduzindo uma camada intermediária entre as bibliotecas `aws-sdk-cpp` e `aws-c-*`. Essa nova camada é chamada `aws-crt-cpp` e é um submódulo git do SDK para C\$1\$1. `aws-crt-cpp` também tem as bibliotecas `aws-c-*` (incluindo `aws-c-common`, `aws-checksums`, ` aws-c-event-stream` etc.) como seus próprios submódulos git. Isso permite que o SDK para C\$1\$1 acesse todas as bibliotecas CRT recursivamente e melhore o processo de compilação.

## CMake Erro: Não foi possível encontrar o arquivo de carregamento
<a name="could-not-load-file2"></a>

CMake gera o seguinte erro se não conseguir encontrar as bibliotecas instaladas.

```
CMake Error at C:/Program Files (x86)/aws-cpp-sdk-all/lib/aws-c-auth/cmake/aws-c-auth-config.cmake:11 
         (include):  include could not find load file:   
         C:/Program Files (x86)/aws-cpp-sdk-all/lib/aws-c-auth/cmake/static/aws-c-auth-targets.cmake
```

Para resolver esse erro, peça CMake para criar bibliotecas compartilhadas. Insira o comando a seguir antes da primeira chamada para `find_package()` no arquivo `CMakeLists.txt`. Consulte [Criação de um aplicativo simples usando o AWS SDK for C\$1\$1](build-cmake.md) para ver um exemplo. 

```
set(BUILD_SHARED_LIBS ON CACHE STRING "Link to shared libraries by default.")
```

## Erro de rutime: não é possível continuar porque a `aws-*.dll` não foi encontrada.
<a name="dll-was-not-found"></a>

CMake gera um erro semelhante ao seguinte se não conseguir encontrar uma DLL necessária.

```
The code execution cannot proceed because aws-cpp-sdk-[dynamodb].dll was not found. Reinstalling the program may fix this problem.
```

Esse erro ocorre porque as bibliotecas ou os executáveis necessários para o SDK para C\$1\$1 não estão disponíveis na mesma pasta que os executáveis da sua aplicação. Para resolver esse erro, copie a saída da compilação do SDK em seu local de executável. O nome do arquivo DLL específico do erro variará dependendo dos AWS serviços que você está usando. Execute *um* destes procedimentos:
+ Copie o conteúdo da `/bin` pasta da AWS SDK para C\$1\$1 instalação para a pasta de compilação do seu aplicativo.
+ Em seu `CMakeLists.txt` arquivo, use a macro AWSSDK\$1CPY \$1DYN\$1LIBS para copiá-los para você.

  Adicione uma chamada a um `AWSSDK_CPY_DYN_LIBS(SERVICE_LIST "" ${CMAKE_CURRENT_BINARY_DIR})` ou `AWSSDK_CPY_DYN_LIBS(SERVICE_LIST "" ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE})` ao arquivo `CMakeLists.txt` para usar essa macro a fim de fazer a cópia para você. Consulte [Criação de um aplicativo simples usando o AWS SDK for C\$1\$1](build-cmake.md) para ver um exemplo.

  Escolha o caminho de cópia correto para seu ambiente de compilação. A compilação via linha de comando geralmente coloca a saída da compilação em uma subpasta (`/Debug`), mas o Visual Studio e outros IDEs geralmente não. Verifique onde estão os executáveis de saída e garanta que a macro esteja fazendo a cópia nesse local. Ao fazer esses tipos de alteração, é prática recomendável excluir o conteúdo do diretório de saída para que você tenha um ponto de partida limpo para a próxima compilação.