在AmazonLinux 2上从源代码构建AWS SDK



我正在努力遵循aws-lamba-cpp的建议,以降低构建应用程序的复杂性。

如果您选择在lambda,则可以避免将C运行时打包在zip文件中。

阅读后:

  • 在EC2上从源代码构建SDK

这是我尝试过的:

% docker run -it amazonlinux:latest /bin/bash
$ cd /tmp/
$ yum -y install libcurl-devel openssl-devel libuuid-devel cmake3 wget tar gzip make gcc-c++
$ wget https://github.com/aws/aws-sdk-cpp/archive/refs/tags/1.9.9.tar.gz
$ tar xfz 1.9.9.tar.gz
$ cd aws-sdk-cpp-1.9.9/
$ mkdir build
$ cd build
$ cmake3 .. -DBUILD_ONLY=s3 -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_SHARED_LIBS=ON
-- TARGET_ARCH not specified; inferring host OS to be platform compilation target
-- Building AWS libraries as shared objects
-- Generating linux build config
-- Building project version: 1.9.9
-- The CXX compiler identification is GNU 7.3.1
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found ZLIB: /usr/lib64/libz.so (found version "1.2.7")
--   Zlib library: /usr/lib64/libz.so
-- Encryption: Openssl
-- Found OpenSSL: /usr/lib64/libcrypto.so (found version "1.0.2k")
--   Openssl include directory: /usr/include
--   Openssl library: /usr/lib64/libssl.so;/usr/lib64/libcrypto.so
-- Http client: Curl
-- Found CURL: /usr/lib64/libcurl.so (found version "7.61.1")
--   Curl include directory: /usr/include
--   Curl library: /usr/lib64/libcurl.so
-- Performing Test HAVE_ATOMICS_WITHOUT_LIBATOMIC
-- Performing Test HAVE_ATOMICS_WITHOUT_LIBATOMIC - Success
CMake Error at CMakeLists.txt:184 (include):
include could not find load file:
AwsFindPackage

CMake Error at CMakeLists.txt:194 (add_subdirectory):
The source directory
/tmp/aws-sdk-cpp-1.9.9/crt/aws-crt-cpp
does not contain a CMakeLists.txt file.

-- Add s3-crt:s3 to C2J_SPECIAL_NAME_LIST
-- Considering s3
-- Looking for pathconf
-- Looking for pathconf - found
-- Looking for umask
-- Looking for umask - found
-- The C compiler identification is GNU 7.3.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Updating version info to 1.9.9
-- Custom memory management enabled; stl objects now using custom allocators
-- Performing Test CURL_HAS_H2
-- Performing Test CURL_HAS_H2 - Success
-- Performing Test CURL_HAS_TLS_PROXY
-- Performing Test CURL_HAS_TLS_PROXY - Success
CMake Error at aws-cpp-sdk-core/CMakeLists.txt:496 (aws_use_package):
Unknown CMake command "aws_use_package".

-- Configuring incomplete, errors occurred!
See also "/tmp/aws-sdk-cpp-1.9.9/build/CMakeFiles/CMakeOutput.log".
See also "/tmp/aws-sdk-cpp-1.9.9/build/CMakeFiles/CMakeError.log".

在AmazonLinux2系统上构建aws-sdk-cpp的正确解决方案是什么?

过去几周发生了一些变化,以前对我来说很好,现在我遇到了和你一样的错误。

用子模块克隆为我修复了它:

$ git clone --recurse-submodules https://github.com/aws/aws-sdk-cpp.git

(在Git 2.13及更高版本中,可以使用--recurse子模块来代替--recursive(

最新更新