首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Cloud9上安装亚马逊C++软件开发工具包时出现问题

在Cloud9上安装亚马逊C++软件开发工具包时出现问题
EN

Stack Overflow用户
提问于 2019-09-22 20:06:36
回答 1查看 644关注 0票数 1

我正在尝试在我的Cloud9环境(m4.Large)上安装亚马逊网络服务软件开发工具包( C++ SDK )。我遵循了this教程中的步骤。

我的步骤:

代码语言:javascript
复制
sudo yum -y install libcurl-devel openssl-devel libuuid-devel cmake3


wget https://github.com/aws/aws-sdk-cpp/archive/master.zip
unzip master.zip
rm master.zip

mkdir sdk_build && cd sdk_build

cmake3 ../aws-sdk-cpp-master -DBUILD_ONLY="dynamodb" //I changed s3 to dynamodb

make && cd ..

在文件dynamodb-demo.cpp

代码语言:javascript
复制
#include <aws/core/Aws.h>

int main(){ return 0;}

CMakeLists.txt

代码语言:javascript
复制
cmake_minimum_required(VERSION 2.8)

project(dynamodb-demo)

find_package(aws-sdk-cpp)
add_definitions(-DUSE_IMPORT_EXPORT)
add_executable(dynamodb-demo dynamodb-demo.cpp)
target_link_libraries(dynamodb-demo aws-cpp-sdk-dynamodb)

问题似乎出在这里,这个命令并没有抛出错误,而是抛出了一个警告:

代码语言:javascript
复制
cmake3 -Daws-sdk-cpp_DIR=sdk_build .

输出:

代码语言:javascript
复制
    CMake Warning at /usr/share/cmake3/Modules/CMakeFindDependencyMacro.cmake:65 (find_package):
  By not providing "Findaws-c-event-stream.cmake" in CMAKE_MODULE_PATH this
  project has asked CMake to find a package configuration file provided by
  "aws-c-event-stream", but CMake did not find one.

  Could not find a package configuration file provided by
  "aws-c-event-stream" with any of the following names:

    aws-c-event-streamConfig.cmake
    aws-c-event-stream-config.cmake

  Add the installation prefix of "aws-c-event-stream" to CMAKE_PREFIX_PATH or
  set "aws-c-event-stream_DIR" to a directory containing one of the above
  files.  If "aws-c-event-stream" provides a separate development package or
  SDK, be sure it has been installed.
Call Stack (most recent call first):
  sdk_build/aws-cpp-sdk-core/aws-cpp-sdk-core-config.cmake:2 (find_dependency)
  sdk_build/aws-sdk-cpp-config.cmake:1 (include)
  CMakeLists.txt:14 (find_package)


CMake Warning at CMakeLists.txt:14 (find_package):
  Found package configuration file:

    /home/ec2-user/environment/sdk_build/aws-sdk-cpp-config.cmake

  but it set aws-sdk-cpp_FOUND to FALSE so package "aws-sdk-cpp" is
  considered to be NOT FOUND.  Reason given by package:

  aws-sdk-cpp could not be found because dependency aws-c-event-stream could
  not be found.



-- Configuring done
-- Generating done
-- Build files have been written to: /home/ec2-user/environment

因此,make命令抛出fatal error: aws/core/Aws.h: No such file or directory,我可以理解,所以我猜错误应该在上面的命令中。

我还没有配置我的AWS凭证,但我认为这不会抛出这些错误。这个问题似乎与cmake有关。

一些研究表明,aws-c-event-stream-config.cmake应该位于它所在的/home/ec2-user/environment/sdk_build/.deps/install/lib64/aws-c-event-stream/cmake

也许解决方案很简单,但我对cmake只有基本的了解。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-23 00:24:59

Tsyvarev's的帮助下,项目可以进行以下配置:

代码语言:javascript
复制
cmake3 -DCMAKE_PREFIX_PATH=/home/ec2-user/environment/sdk_build/.deps/install/lib64/aws-checksums/cmake\;/home/ec2-user/environment/sdk_build/.deps/install/lib64/aws-c-common/cmake\;/home/ec2-user/environment/sdk_build/.deps/install/lib64/aws-c-event-stream/cmake\;/home/ec2-user/environment/sdk_build .

我也需要改变一些事情:

构建AWS核心(不确定是否需要):

代码语言:javascript
复制
cmake3 ../aws-sdk-cpp-master -DBUILD_ONLY="core;dynamodb"

将此代码添加到您的CMakeLists.txt

代码语言:javascript
复制
target_link_libraries(dynamodb-demo aws-cpp-sdk-core)

并将标准设置为C++ 11:

代码语言:javascript
复制
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58049050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档