腾讯云对象存储COS C++ SDK环境搭建

参考官方文档:https://cloud.tencent.com/document/product/436/6474

使用平台

腾讯云服务器
Linux CentOS 7

环境安装

通用工具

yum install -y gcc gcc-c++ make automake wget

cmake

# cmake 版本要大于3.5
yum install -y cmake

或者

wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz
tar -zxvf cmake-3.5.2.tar.gz
cd cmake-3.5.2
./bootstrap --prefix=/usr
gmake
gmake install

Boost

wget http://sourceforge.net/projects/boost/files/boost/1.54.0/boost_1_54_0.tar.gz
tar -xzvf boost_1_54_0.tar.gz
cd boost_1_54_0
./bootstrap.sh --prefix=/usr/local
./b2 install --with=all
# Boost 库被安装在 /usr/local/lib 目录下

OpenSSL

yum install openssl openssl-devel

或者

wget https://www.openssl.org/source/openssl-1.0.1t.tar.gz  
tar -xzvf ./openssl-1.0.1t.tar.gz
cd openssl-1.0.1t/
./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl

cd /usr/local/
ln -s ssl openssl
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
ldconfig

# 添加头文件/库文件查找路径(可以写入到~/.bashrc中)
LIBRARY_PATH=/usr/local/ssl/lib/:$LIBRARY_PATH
CPLUS_INCLUDE_PATH=/usr/local/ssl/include/:$CPLUS_INCLUDE_PATH

Poco

Poco官网下载complate版本的压缩包
本次使用的是:poco-1.9.0-all.tar.gz

tar -xzvf poco-1.9.0-all.tar.gz
cd poco-1.9.0-all
./configure --omit=Data/ODBC,Data/MySQL
make
make install
# Poco库被安装在 /usr/local/lib 目录下

# 装完Boost和Poco以后,执行如下命令
echo "/usr/local/lib" >> /etc/ld.so.conf
ldconfig

XML C++ SDK

git clone https://github.com/tencentyun/cos-cpp-sdk-v5.git
cd cos-cpp-sdk-v5
vim CMakeList.txt
# 修改如下内容
# SET(BOOST_HEADER_DIR "/root/boost_1_54_0")
# 解开include_directories(${BOOST_HEADER_DIR})注释
mkdir -p build
cd build 
cmake .. 
make

使用说明

XML C++ SDK Demo

XML C++ SDK中带有demo文件。

  1. 修改config.json文件,主要是用腾讯云的SecretIdSecretKey替换掉对应的****************
  2. 根据需要修改cos_demo.cppmain方法;
  3. build/demo目录执行make命令;
  4. build/bin目录通过./cos_demo执行demo。

XML C++ SDK编译出来的库,放到其他项目使用

本例以一个linux上的C++小例子cos_utils来说明。

  1. 新建/root/cos目录;
  2. cos_demo.cppconfig.json拷贝到目录中,根据具体需求做简单的改动 ,修改cos_demo.cppcos_utils.cpp
  3. cos-cpp-sdk-v5目录中的includelib目录拷贝到当前目录,将cos-cpp-sdk-v5\build\lib目录中的静态库文件拷贝到当前目录的lib目录;
  4. 编译链接生成cos_utils可执行文件,具体命令如下:
g++ -std=c++11 -g -O2 -Wno-deprecated -Wall -I/root/cos/include -o cos_utils.o -c cos_utils.cpp

g++ -std=c++11 -g -O2 -Wno-deprecated -Wall -o cos_utils cos_utils.o -rdynamic -L/root/cos/lib -lcossdk -ljsoncpp -lPocoNetSSL -lPocoNet -lPocoCrypto -lPocoUtil -lPocoJSON -lPocoXML -lPocoFoundation -lssl -lcrypto -lrt -lstdc++ -lpthread -lboost_thread -lboost_system

特别注意,在链接的时候需要将jsoncpp、poco、boost等库链接上,不然编译的时候会报undefined reference to xxx的错误。

将编译出来的cos_utils小例子移植到其他服务器

移植的时候,一定要确保,可执行文件依赖的动态库都是有的,否则不能正确执行。
需要安装或者拷贝Boost的库文件,需要安装OpenSSL,需要安装poco和一些其他的依赖。
拷贝到其他服务器的可执行文件需要通过chmod u+x cos_utils授权,然后可以通过ldd cos_utils查看依赖的动态库是否完整,缺哪个装哪个。

猜你喜欢

转载自blog.csdn.net/z_junyu/article/details/86701406