zoukankan      html  css  js  c++  java
  • 基于 libghttp 的七牛文件上传-交叉编译

    背景

    有些情况下,嵌入式设备文件上传需要的网络库不可以太大,诸如 curl 之类的库可能就太大了,好在有一种 libghttp 的库,可以用来发送 http 请求。

    编译Libghttp

    首先需要安装 libghttp 库到 arm 的系统中。

    下载源码:

    $ git clone https://github.com/sknown/libghttp.git
    $ ./configure

    修改Makefile,把gcc修改成自己的交叉编译链,我们采用的是:arm-linux-gnueabihf-gcc,根据您的实际情况修改

    all:
    	arm-linux-gnueabihf-gcc -DGHTTP_MAJOR_VERSION=1 -DGHTTP_MINOR_VERSION=0 -DGHTTP_MICRO_VERSION=9 -DPACKAGE="libghttp" -DVERSION="1.0.9" -DSTDC_HEADERS=1 -I. -I. -g -O2 -fPIC -c ghttp.c -o ghttp.o >/dev/null 2>&1
    	arm-linux-gnueabihf-gcc -DGHTTP_MAJOR_VERSION=1 -DGHTTP_MINOR_VERSION=0 -DGHTTP_MICRO_VERSION=9 -DPACKAGE="libghttp" -DVERSION="1.0.9" -DSTDC_HEADERS=1 -I. -I. -g -O2 -fPIC -c http_date.c -o http_date.o >/dev/null 2>&1
    	arm-linux-gnueabihf-gcc -DGHTTP_MAJOR_VERSION=1 -DGHTTP_MINOR_VERSION=0 -DGHTTP_MICRO_VERSION=9 -DPACKAGE="libghttp" -DVERSION="1.0.9" -DSTDC_HEADERS=1 -I. -I. -g -O2 -fPIC -c http_hdrs.c -o http_hdrs.o >/dev/null 2>&1
    	arm-linux-gnueabihf-gcc -DGHTTP_MAJOR_VERSION=1 -DGHTTP_MINOR_VERSION=0 -DGHTTP_MICRO_VERSION=9 -DPACKAGE="libghttp" -DVERSION="1.0.9" -DSTDC_HEADERS=1 -I. -I. -g -O2 -fPIC -c http_req.c -o http_req.o >/dev/null 2>&1
    	arm-linux-gnueabihf-gcc -DGHTTP_MAJOR_VERSION=1 -DGHTTP_MINOR_VERSION=0 -DGHTTP_MICRO_VERSION=9 -DPACKAGE="libghttp" -DVERSION="1.0.9" -DSTDC_HEADERS=1 -I. -I. -g -O2 -fPIC -c http_resp.c -o http_resp.o >/dev/null 2>&1
    	arm-linux-gnueabihf-gcc -DGHTTP_MAJOR_VERSION=1 -DGHTTP_MINOR_VERSION=0 -DGHTTP_MICRO_VERSION=9 -DPACKAGE="libghttp" -DVERSION="1.0.9" -DSTDC_HEADERS=1 -I. -I. -g -O2 -fPIC -c http_trans.c -o http_trans.o >/dev/null 2>&1
    	arm-linux-gnueabihf-gcc -DGHTTP_MAJOR_VERSION=1 -DGHTTP_MINOR_VERSION=0 -DGHTTP_MICRO_VERSION=9 -DPACKAGE="libghttp" -DVERSION="1.0.9" -DSTDC_HEADERS=1 -I. -I. -g -O2 -fPIC -c http_uri.c -o http_uri.o >/dev/null 2>&1
    	arm-linux-gnueabihf-gcc -DGHTTP_MAJOR_VERSION=1 -DGHTTP_MINOR_VERSION=0 -DGHTTP_MICRO_VERSION=9 -DPACKAGE="libghttp" -DVERSION="1.0.9" -DSTDC_HEADERS=1 -I. -I. -g -O2 -fPIC -c http_base64.c -o http_base64.o >/dev/null 2>&1
    	arm-linux-gnueabihf-ar cru libghttp.a  ghttp.o http_date.o http_hdrs.o http_req.o http_resp.o http_trans.o http_uri.o http_base64.o
    	ranlib libghttp.a
    	arm-linux-gnueabihf-gcc -DGHTTP_MAJOR_VERSION=1 -DGHTTP_MINOR_VERSION=0 -DGHTTP_MICRO_VERSION=9 -DPACKAGE="libghttp" -DVERSION="1.0.9" -DSTDC_HEADERS=1 -I. -I. -g -O2 -shared -o libghttp.so ghttp.o http_date.o http_hdrs.o http_req.o http_resp.o http_trans.o http_uri.o http_base64.o
    
    clean:
    	rm *.o *.a *.so
    
    make
    

    libghttp统译完成,arm-linux-gnueabihf-gcc库奉上.

    链接:https://pan.baidu.com/s/1V3-AR2cSi3WW193D3dUAwA 
    提取码:8888 
    

    编译Libghttp-qiniu

    在网上找一个大哥写的基于libghttp写的七牛库,感谢

    git clone https://github.com/jemygraw/libghttp-qiniu.git
    

    修改Makefile,路径根据自己的实际情况来填,我们采用的是交叉编译,所以我们手动指定了库的路径

    INCLUDE_PATH=-Ighttp-qiniu -I./libghttp/include -L./libghttp/lib
    SOURCE_FILES=
    	ghttp-qiniu/ghttp-qiniu.c
    	main.c
    
    all: $(SOURCE_FILES)
    	arm-linux-gnueabihf-gcc -std=c99 -g $^ -o upload $(INCLUDE_PATH) -lghttp
    

    最后编译.

  • 相关阅读:
    Matlab绘图基础——利用axes(坐标系图形对象)绘制重叠图像 及 一图多轴(一幅图绘制多个坐标轴)
    [学习笔记]Javaweb开发视频教程之Tomcat9配置
    Matlab绘图基础——axis设置坐标轴取值范围
    Cauchy-Binet公式的证明 及 对《来自特征值的特征向量》的理解
    [问题解决]win10误删启动项(BCD)(HP电脑亲测,无需启动盘,并非重装系统)
    [经验分享]用自相似的思想来理解二叉树的三种遍历方法
    [参考]用递归的方法获取 字符 对应的 二进制字符串 (C/C++)
    [经验分享]SecureCRT导出操作日志 + Notepad自定义语言格式高亮日志文件
    [公式推导]一般线性秩统计量的方差函数 及其 极限分布
    [问题解决]RedHat7更换CentOS7的yum源时踩过的坑
  • 原文地址:https://www.cnblogs.com/cqwo/p/15103651.html
Copyright © 2011-2022 走看看