天天看點

OSS 的C++ SDK編譯安裝指南OSS C++ SDK編譯安裝:可能遇到的問題:

作者:蒼柏

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、

OSS 的C++ SDK編譯安裝指南OSS C++ SDK編譯安裝:可能遇到的問題:

解法:請使用g++進行編譯,而非gcc

問題2、

OSS 的C++ SDK編譯安裝指南OSS C++ SDK編譯安裝:可能遇到的問題:

解法:C++ SDK中使用了C++ 11中描述的新特定,編譯參數需要添加對C++11的支援

g++ -std=c++11

問題3、

OSS 的C++ SDK編譯安裝指南OSS C++ SDK編譯安裝:可能遇到的問題:

解法:找不到靜态連結庫,請注意檢查 /etc/ld.so.conf 中配置的靜态庫檢索路徑,以及您C++ SDK中靜态庫的安裝位置是否在檢索路徑中能夠找到

或者手動指定靜态庫

示例:g++ -std=c++11 -o test 靜态庫.a

繼續閱讀