背景:
由于很多人对 SDK 的安装和系统依赖的环境变量不是很熟悉,导致很熟悉,浪费不必要的时间,而且导致环境变量引入也出现异常。特此写了一篇从安装到遇坑的过程给大家。
操作环境:
Linux Centos 6.9 64 位系统
预先安装好的库:
1、glibc-2.14 (mxml 库需要依赖这个库):
- 先看下
strings /lib64/libc.so.6 | grep GLIBC
是否有 GLBC-2.14 或者以上。如果没有的话,请先编译 GLBC-2.14 的安装包
- 下载 glibc https://zhangyb.oss-cn-shanghai.aliyuncs.com/OSS-C-SDK/glibc-2.14.tar.gz?Expires=1521549492&OSSAccessKeyId=TMP.AQEAKUK0qmvX2ZXjEp98ANKQTKdkMbaeVTyQcrY3kdV_uZ5mt2NSdD3pC9m-AAAwLAIUYGbefvuM7qe9Q_gJiOdd0tIiwp8CFByPd8sFWbcncwcLb5XKmng2i-_l&Signature=FEm8GdGTSyeLyiSH1Z7bZBJI%2BGU%3D 下载不了请联系本人。
- tar xvf glibc-2.14.tar.gz && cd glibc-2.14 && mkdir build && cd build && ../configure --prefix=/usr/local/glibc-2.14 && make -j4 && make install && cp /usr/local/glibc-2.14/lib/libc-2.14.so /lib64/libc-2.14.so && mv /lib64/libc.so.6 /lib64/libc.so.6.bak && LD_PRELOAD=/lib64/libc-2.14.so ln -s /lib64/libc-2.14.so /lib64/libc.so.6
2、安装 cmake 库:
- sudo yum install cmake
3、安装第三方库文件:
- sudo yum install curl-devel apr-devel apr-util-devel
4、 安装 mxml 库:
- http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/32132/cn_zh/1501596081318/mxml-2.9-1.x86_64.rpm?spm=a2c4g.11186623.2.6.I37Y6M&file=mxml-2.9-1.x86_64.rpm
- rpm -ivh mxml-2.9-1.x86_64.rpm --nodeps --force
安装 OSS-C-SDK:
- SDK 3.5 ,官网随时更新,请以官网为准 http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/32131/cn_zh/1501595738954/aliyun-oss-c-sdk-3.5.0.tar.gz?spm=a2c4g.11186623.2.4.Bf6aUL&file=aliyun-oss-c-sdk-3.5.0.tar.gz
- tar -xf SDK.tar.gz && cd SDK && cmake . && make && make install 安装好 SDK 后,会自动 /usr/local/include/ 下创建好 oss_c_sdk 的目录,并引入需要依赖的 SDK 库文件。
测试 SDK demo
- 注意 demo 中的动态链接库都是查找的默认安装路径,请先用命令搜索一下是否包含了以下路径
- `g++ -print-prog-name=cc1` -v
- `gcc -print-prog-name=cc1` -v
- 下载 demo ,解压后找到对应的系统的路径,进行测试 http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/32132/cn_zh/1487730555529/aliyun-oss-c-sdk-demo.tar.gz?spm=a2c4g.11186623.2.14.AsMiZ9&file=aliyun-oss-c-sdk-demo.tar.gz
- 编译 gcc -Wall -O -g -I /usr/local/include/oss_c_sdk -I /usr/include/apr-1 -c main.c -o main.o &&
gcc main.o -o main -lpthread -L/usr/local/lib -loss_c_sdk -lcurl -lmxml -L/usr/local/apr/lib -lapr-1 -laprutil-1
./main - 测试