如果您需要管理OSS存储空间、上传下载文件、管理数据、进行图片处理等,可以先安装OSS C++ SDK。本文介绍如何在不同的操作系统中安装OSS C++ SDK以及编译选项的使用说明。
前提条件
-
C++11及以上版本的编译器
-
Visual Studio 2013及以上版本
-
GCC 4.8及以上版本
-
Clang 3.3及以上版本
下载SDK
安装SDK
您可以通过Linux、Windows、Android及macOS系统安装SDK。
Linux系统
-
安装CMake并通过CMake生成目标平台的构建脚本。
-
下载CMake安装包。
以下以安装CMake 3.21.1版本为例,如需下载其他版本,请对应替换版本号。
wget https://cmake.org/files/v3.21/cmake-3.21.1.tar.gz -
解压CMake安装包文件。
tar xvf cmake-3.21.1.tar.gz -
进入CMake安装目录。
cd cmake-3.21.1/ -
执行自动化构建和配置过程,用于检查系统环境、生成Makefile文件、配置编译选项等。
./bootstrap -
根据Makefile文件中的规则,逐个编译源代码文件,生成目标可执行文件或库文件。
make -
安装编译生成的文件。
sudo make install
-
-
添加环境变量。
-
编辑bash配置文件。
vim .bashrc -
配置环境变量。
CMAKE_PATH=/usr/local/cmake export PATH=$CMAKE_PATH/bin:$PATH -
使bash配置文件更改生效。
source .bashrc -
查找并显示在当前系统中可执行
cmake命令的路径。which cmake
-
-
安装依赖。
yum -y install libcurl-devel openssl-devel unzip -
安装C++ SDK。
-
下载C++ SDK安装包。
wget -O aliyun-oss-cpp-sdk-master.zip "https://github.com/aliyun/aliyun-oss-cpp-sdk/archive/refs/tags/1.10.0.zip" -
解压安装包文件。
unzip aliyun-oss-cpp-sdk-master.zip -
进入安装目录。
cd aliyun-oss-cpp-sdk-master -
安装C++ SDK。
-
创建用于编译和构建项目的目标目录。
mkdir build -
切换至目标目录。
cd build -
通过CMake工具生成项目的构建系统。
cmake .. -
执行项目的编译过程。
make -
将编译生成的文件安装到系统指定的目录中。
make install
-
-
-
编译示例文件。
g++ test.cpp -std=c++11 -fno-rtti -lalibabacloud-oss-cpp-sdk -lcurl -lcrypto -lpthread -o test.bin重要C++ SDK默认关闭rtti属性。因此使用g++编译运行时,请添加-std=c++11、-fno-rtti、-lalibabacloud-oss-cpp-sdk、-lcurl、-lcrypto和-lpthread。
Windows系统
-
安装CMake并通过CMake生成目标平台的构建脚本。
安装CMake3.1及以上版本后,打开cmd进入SDK文件目录,创建build文件夹,运行cmake ..生成所需文件,如下所示。
D:\Item\C++\aliyun-oss-cpp-sdk\build>cmake .. -- Selecting Windows SDK version 10.0.17134.0 to target Windows 6.1.7601. -- Project version: 1.1.0 -- TARGET_OS: WINDOWS -- Configuring done -- Generating done -- Build files have been written to: D:/Item/C++/aliyun-oss-cpp-sdk/build说明-
下载的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生成解决方案。
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。 |