阿里云OSS简介
阿里云对象存储OSS(Object Storage Service)是阿里云提供的海量、安全、低成本、高持久的云存储服务。
阿里云OSS官方地址
c_sdk:
https://github.com/aliyun/aliyun-oss-c-sdk
cpp_sdk:
https://github.com/aliyun/aliyun-oss-cpp-sdk
相关依赖库:
Libcurl
Apr
apr-util
minixml
openssl
我自己整理打包了一个,可以直接下载
https://download.csdn.net/download/weixin_43817380/13077093
1 mxmlv2.10
下载地址:
https://github.com/michaelrsweet/mxml/releases
建立cross.sh文件,把下面的复制进去,修改相关目录执行,然后make,make install即可安装至–prefix指定的目录。
- –prefix: 安装目录 即make install之后 include lib 位置所在目录。(后面相同就不说了)
- –host:该软件将要运行的平台(可随意设置)
- CC:交叉编译的gcc工具
- CXX:交叉编译的g++工具
./configure \
--prefix=/home/dl/OSS/libmxml \
-host=arm-linux \
CC=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-gcc \
CXX=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-g++
执行sh cross.sh命令,配置成功后
然后执行make,make install。
2 libcurl 库
源码:https://curl.haxx.se/download.html
./configure \
--prefix=/home/dl/OSS/libcurl \
--host=arm-linux \
CC=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-gcc \
CXX=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-g++
执行sh cross.sh命令,配置成功后
然后执行make,make install。
3 apr-1.7.0
下载地址 https://apr.apache.org/
./configure --prefix=/home/dl/OSS/libapr \
--host=arm-linux CC=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-gcc \
CXX=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-g++ \
ac_cv_file__dev_zero=yes ac_cv_func_setpgrp_void=yes \
apr_cv_process_shared_works=yes apr_cv_mutex_robust_shared=yes \
apr_cv_tcp_nodelay_with_cork=yes \
ap_void_ptr_lt_long=no \
APR_HAS_PROC_PTHREAD_SERIALIZE=yes
执行sh cross.sh,make,make install即可
运行后执行make,会出错
3.1 报错./include/apr_want.h:94:8: error: redefinition of ‘struct iovec’
修改apr_want.h文件。从92行开始
#ifndef APR_IOVEC_DEFINED
#define APR_IOVEC_DEFINED
struct iovec
{
void *iov_base;
size_t iov_len;
};
#endif /* !APR_IOVEC_DEFINED */
把这一段注释掉
3.2 报错encoding/apr_escape.c:79:33: error: ‘test_char_table’ undeclared
在makeflie里第134行找到
OBJECTS_gen_test_char = tools/gen_test_char.lo $(LOCAL_LIBS)
把它屏蔽掉
或者在./encoding/apr_escape.c 文件中把
#define TEST_CHAR(c, f) (test_char_table[(unsigned)(c)] & (f))
定义改为空
3.3报错locks/unix/proc_mutex.c:1494:28: error: ‘mutex_proc_pthread_methods’ undeclared (first use in this function)
去apr.h文件中把255行的
#define APR_HAS_PROC_PTHREAD_SERIALIZE 0
改为
#define APR_HAS_PROC_PTHREAD_SERIALIZE 1
保存,然后make,make install
4 apr-util-1.5.4
下载地址 同 apr : https://apr.apache.org/
在编译前需要先编译libexpat
4.1libexpat的交叉编译
下载地址 https://github.com/libexpat/libexpat
进入libexpat-master/expat目录,创建cross.sh文件
./configure --prefix=/home/dl/OSS/libexpat \
-host=arm-linux \
CC=/opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-gcc
执行sh cross.sh,make,make install即可
4.2 apr-util 1.5.4的交叉编译
建立c