作者:苍柏
OSS C++ SDK编译安装:
1、环境准备
安装curl、ssl库
cmake安装(版本请使用V3.1.0以上,示例中使用的是v3.9.1)
yum –y install libcurl-devel openssl-devel
apt-get install libcurl-devel openssl-devel
gcc g++环境安装(注意gcc版本需要使用4.8.1之后,示例中采用的是V4.8.2)
2、下载SDK
Git地址见这里
3、SDK安装
cd aliyun-oss-php-sdk-2.3.0/
mkdir build
cd build
cmake ..
make && make install
4、使用SDK(以PutObject为例)
示例代码如下:
#include <stdint.h>
#include <iostream>
#include <memory.h>
#include <alibabacloud/oss/OssClient.h>
using namespace AlibabaCloud::OSS;
int main(void)
{
/* 初始化OSS账号信息 */
std::string AccessKeyId = "******";
std::string AccessKeySecret = "*******";
std::string Endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
std::string BucketName = "cangbai-test";
std::string ObjectName = "test.txt";
/* 初始化网络等资源 */
InitializeSdk();
ClientConfiguration conf;
OssClient client(Endpoint, AccessKeyId, AccessKeySecret, conf);
/* 上传文件 */
auto outcome = client.PutObject(BucketName, ObjectName,"/cangbai/CMakeLists.txt");
if (!outcome.isSuccess()) {
/* 异常处理 */
std::cout << "PutObject fail" <<
",code:" << outcome.error().Code() <<
",message:" << outcome.error().Message() <<
",requestId:" << outcome.error().RequestId() << std::endl;
ShutdownSdk();
return -1;
}
std::cout<<"PubObject Success !!!"<<std::endl;
/* 释放网络等资源 */
ShutdownSdk();
return 0;
}
可能遇到的问题:
问题1、
解法:请使用g++进行编译,而非gcc
问题2、
解法:C++ SDK中使用了C++ 11中描述的新特定,编译参数需要添加对C++11的支持
g++ -std=c++11
问题3、
解法:找不到静态链接库,请注意检查 /etc/ld.so.conf 中配置的静态库检索路径,以及您C++ SDK中静态库的安装位置是否在检索路径中能够找到
或者手动指定静态库
示例:g++ -std=c++11 -o test 静态库.a