腾讯云对象存储COS C++ SDK环境搭建
使用平台
腾讯云服务器
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文件。
- 修改
config.json
文件,主要是用腾讯云的SecretId
、SecretKey
替换掉对应的****************
; - 根据需要修改
cos_demo.cpp
的main
方法; - 到
build/demo
目录执行make
命令; - 在
build/bin
目录通过./cos_demo
执行demo。
XML C++ SDK编译出来的库,放到其他项目使用
本例以一个linux上的C++小例子cos_utils来说明。
- 新建
/root/cos
目录; - 将
cos_demo.cpp
和config.json
拷贝到目录中,根据具体需求做简单的改动 ,修改cos_demo.cpp
为cos_utils.cpp
; - 将
cos-cpp-sdk-v5
目录中的include
和lib
目录拷贝到当前目录,将cos-cpp-sdk-v5\build\lib
目录中的静态库文件拷贝到当前目录的lib
目录; - 编译链接生成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
查看依赖的动态库是否完整,缺哪个装哪个。