本文介绍如何在不同的操作系统中安装OSS C++ SDK以及编译选项的使用说明。
前提条件
- C++11及以上版本的编译器
- Visual Studio 2013及以上版本
- GCC 4.8及以上版本
- Clang 3.3及以上版本
下载SDK
安装SDK
您可以通过Linux 、Windows 、Android及Mac系统安装SDK。
- Linux系统:
- 安装CMake
请安装CMake3.1及以上版本。打开SDK安装包,通过CMake编译生成所需文件。
编译命令如下:
cd <path/to/aliyun-oss-cpp-sdk> mkdir build cd build cmake ..
- 安装第三方库libcurl、openssl
RedHat或Centos:
yum –y install libcurl-devel openssl-devel
Fedora:
sudo dnf install libcurl-devel openssl-devel
- 安装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
- 安装CMake
- Windows 系统:
- 安装CMake。打开cmd进入SDK文件目录,创建build文件夹,运行cmake ..生成所需文件,如下图所示:
说明
- 下载的SDK中不直接提供alibabacloud-oss-cpp-sdk.sln工程文件,您需要通过cmake生成所需的工程文件。
- 如果要构建x64体系结构,可以使用命令cmake -A x64 ..来实现。
- 请以管理员身份运行VS开发人员命令提示符,在build目录文件下运行以下命令进行编译安装:
msbuild ALL_BUILD.vcxproj msbuild INSTALL.vcxproj
或者用Visual Studio打开alibabacloud-oss-cpp-sdk.sln生成解决方案。
- 安装CMake。打开cmd进入SDK文件目录,创建build文件夹,运行cmake ..生成所需文件,如下图所示:
- 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
- Mac系统:
在Mac系统中指定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。 |