移植OSS SDK到TI3354 ARM平台记录

因为项目需要把数据上传到阿里云,我们的采集设备是ARM平台的,就要移植OSS SDK到我们的ARM平台,我们的设备用的是TI3354,LINUX 3.14,弄了两天终于弄好了,记录一下,原创文章,请勿转载!

交叉编译 OSS SDK 步骤

1.首先编译libcurl库

源码:https://curl.haxx.se/download.html,我下载的curl-7.32.0

curl

chmod 0777 configure

./configure --prefix=$PWD/../build_lib --host=arm-linux --target=arm-linux CC=arm-arago-linux-gnueabi-gcc

make

make install

 

2.编译apr-1.5.2

apr-1.5.2

./configure

make

cp -a tools/gen_test_char ../

make clean

./configure --prefix=$PWD/../build_lib --host=arm-linux CC=arm-arago-linux-gnueabi-gcc CXX=arm-arago-linux-gnueabi-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

cp -a ../gen_test_char tools/

Vim Makefile

134 行

OBJECTS_gen_test_char = tools/gen_test_char.lo $(LOCAL_LIBS)

屏蔽

#OBJECTS_gen_test_char = tools/gen_test_char.lo $(LOCAL_LIBS)

目的是不生成新的gen_test_char文件

8 vi include/apr_want.h 第93行 #ifndef APR_IOVEC_DEFINED 替换成#if 0

make

make install

 

3.编译apr-util-1.5.4

./configure --prefix=$PWD/../build_lib --host=arm-linux CC=arm-arago-linux-gnueabi-gcc CXX=arm-arago-linux-gnueabi-g++ --with-apr=$PWD/../build_lib/ --with-expat=$PWD/../build_lib/

make

make install

 

4.minixml,我用的mxml-2.9

./configure --prefix=$PWD/../build_lib --host=arm-linux CC=arm-arago-linux-gnueabi-gcc CXX=arm-arago-linux-gnueabi-g++

make

出错,不管,把so文件和.h文件拷贝走

 

4.下载oss sdk,百度一下阿里云OSS SDK,下载3.5.0

修改CMakeLists.txt如下

 

cmake . -DCMAKE_INSTALL_PREFIX=/home/stone/work/darma/temp/examples/uart_rcv/oss_arm/build_lib -DCURL_INCLUDE_DIR=/home/stone/work/darma/temp/examples/uart_rcv/oss_arm/build_lib/include/curl -DCURL_LIBRARY=/home/stone/work/darma/temp/examples/uart_rcv/oss_arm/build_lib/lib -DAPR_INCLUDE_DIR=/home/stone/work/darma/temp/examples/uart_rcv/oss_arm/build_lib/include/apr-1 -DAPR_LIBRARY=/home/stone/work/darma/temp/examples/uart_rcv/oss_arm/build_lib/lib/libapr-1.a -DAPR_UTIL_INCLUDE_DIR=/home/stone/work/darma/temp/examples/uart_rcv/oss_arm/build_lib/include/apr-1 -DAPR_UTIL_LIBRARY=/home/stone/work/darma/temp/examples/uart_rcv/oss_arm/build_lib/lib/libaprutil-1.a -DMINIXML_INCLUDE_DIR=/home/stone/work/darma/temp/examples/uart_rcv/oss_arm/build_lib/include/mxml/ -DMINIXML_LIBRARY=/home/stone/work/darma/temp/examples/uart_rcv/oss_arm/build_lib/lib/libmxml.so.1.5

make

make install

 

如果需要MD5校验,我发现很有必要做MD5校验,否则上传上去的文件会有不完整的情况。OSS SDK的MD5校验码制作方法有点麻烦,最后自己写了个工具来搞。

OSS CONTENT-MD5计算方法

md5sum xxx.dat 生成md5码

简单直接的方法:

echo -e -n "\xa8\x2b\xea\x08\xdc\x5d\x94\x81\x2a\xe3\x39\xe2\xdd\x06\xe6\xeb" | base64

正规的用法:

md5sum raw.dat | awk '{print $1}' | xxd -r -ps | base64

qCvqCNxdlIEq4zni3Qbm6w==

xxd移植不了,busybox中的参数不同,自己写了一个tcu_xxd来用

最后

#!/bin/sh

crc=`md5sum raw-data-129-201809130533.dat | awk '{print $1}'`

md5=`./tcu_xxd $crc | base64`

echo $md5

 

最后又搞定了断点续传,完美!

最后打下广告,有需要工控终端嵌入式设备的联系我啊,QQ:7972418 :)

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

suntao222

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值