本文介绍如何在不同的操作系统中安装OSS C++ SDK以及编译选项的使用说明。

前提条件

  • C++11及以上版本的编译器
  • Visual Studio 2013及以上版本
  • GCC 4.8及以上版本
  • Clang 3.3及以上版本

下载SDK

安装SDK

您可以通过Linux、Windows、Android及macOS系统安装SDK。

  • Linux系统
    1. 安装CMake并通过CMake生成目标平台的构建脚本。

      安装CMake3.1及以上版本后,下载SDK源码包,通过CMake编译生成所需文件。

      编译命令如下:

      cd <path/to/aliyun-oss-cpp-sdk>
      mkdir build
      cd build
      cmake ..
    2. 安装第三方库libcurl、openssl。

      RedHat或Centos:

      yum –y install libcurl-devel openssl-devel

      Fedora:

      sudo dnf install libcurl-devel openssl-devel
    3. 安装SDK。
      make && make install
    注意 C++ SDK默认关闭rtti属性。因此使用g++编译运行时,请添加-std=c++11-fno-rtti-lalibabacloud-oss-cpp-sdk-lcurl-lcrypto-lpthread

    示例如下:

    g++ test.cpp -std=c++11 -fno-rtti -lalibabacloud-oss-cpp-sdk -lcurl -lcrypto -lpthread -o test.bin
  • Windows系统
    1. 安装CMake并通过CMake生成目标平台的构建脚本。

      安装CMake3.1及以上版本后,打开cmd进入SDK文件目录,创建build文件夹,运行cmake ..生成所需文件,如下图所示。

      cmake01
      说明
      • 下载的SDK中不直接提供alibabacloud-oss-cpp-sdk.sln工程文件,您需要通过cmake生成所需的工程文件。
      • 如果要构建x64体系结构,可以使用命令cmake -A x64 ..来实现。
    2. 请以管理员身份运行VS开发人员命令提示符,在build目录文件下运行以下命令进行编译安装。
      msbuild ALL_BUILD.vcxproj
      msbuild INSTALL.vcxproj

      或者用Visual Studio打开alibabacloud-oss-cpp-sdk.sln生成解决方案。

  • Android系统

    Linux环境下,基于android-ndk-r16工具链构建工程。请在$ANDROID_NDK/sysroot路径下安装libcurl和libopenssl第三方库,并运行以下命令进行编译安装。

    cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake  \
          -DANDROID_NDK=$ANDROID_NDK    \
          -DANDROID_ABI=armeabi-v7a     \
          -DANDROID_TOOLCHAIN=clang     \
          -DANDROID_PLATFORM=android-21 \
          -DANDROID_STL=c++_shared ..
    make
  • macOS系统

    在macOS系统中,您可以使用brew方式来安装依赖库。

    在macOS系统中需要指定OpenSSL安装路径。假设OpenSSL安装在/usr/local/Cellar/openssl/1.0.2p目录中,运行以下命令进行编译安装。

    cmake -DOPENSSL_ROOT_DIR=/usr/local/Cellar/openssl/1.0.2p  \
          -DOPENSSL_LIBRARIES=/usr/local/Cellar/openssl/1.0.2p/lib  \
          -DOPENSSL_INCLUDE_DIRS=/usr/local/Cellar/openssl/1.0.2p/include/ ..
    make

编译选项

您可以根据具体的业务场景,设置不同的编译选项,编译选项格式为cmake -D${OptionName}=ON|OFF ..

可选的编译选项请参见下表。

选项名称 描述
BUILD_SHARED_LIBS 构建动态库,默认值为OFF。打开此选项时,会同时构建静态库和动态库, 且静态库名字增加-static后缀。

结合编译选项格式,如果要构建动态库,则使用cmake -DBUILD_SHARED_LIBS=ON ..

ENABLE_RTTI 支持的实时类型信息,默认值为ON。
OSS_DISABLE_BUCKET 不构建Bucket相关设置接口,默认值为OFF。如果需要裁剪代码大小,可将其置为ON。
OSS_DISABLE_LIVECHANNEL 不构建LiveChannel接口,默认值为OFF。如果需要裁剪代码大小,可将其置为ON。
OSS_DISABLE_RESUAMABLE 不构建断点续传接口,默认值为OFF。如果需要裁剪代码大小,可将其置为ON。
OSS_DISABLE_ENCRYPTION 不构建客户端加密接口,默认值为OFF。如果需要裁剪代码大小,可将其置为ON。