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
    

    最后编译.

  • 相关阅读:
    [转]一键安装藏隐患,phpStudy批量入侵的分析与溯源
    Vue Cli安装以及使用
    全局安装 Vue cli3 和 继续使用 Vue-cli2.x
    [转]局域网共享一键修复 18.5.8 https://zhuanlan.zhihu.com/p/24178142
    DELPHI中千万别直接使用CreateThread ,建议使用BeginThread(在C++中无大问题,可是到了DELPHI中情况就不一样了)
    [转]【Delphi】 Thread.Queue与Synchronize的区别
    如何使用Windows Library文件进行持久化
    chromium中的性能优化工具syzyProf
    [转]室友靠打游戏拿30万offer,秘密竟然是……
    .NET中的三种Timer的区别和用法
  • 原文地址:https://www.cnblogs.com/cqwo/p/15103651.html
Copyright © 2011-2022 走看看