zoukankan      html  css  js  c++  java
  • 七牛云SDKLinux环境下C SDK的编译(转)

    ARM64位编译包

    1.下载代码到本地

    git clone https://github.com/qiniu/c-sdk.git
    

     如果国外下载速度慢,可以用码云的镜像库

    git clone https://gitee.com/cqnews/c-qiniu-sdk.git
    

      

    2.该项目依赖库curlopenssl

    sudo apt-get install libcurl4-openssl-dev libssl-dev
    

    3.编写Makefile文件

    INCLUDE_PATH=-Ibase64 -IcJSON -Iqiniu
    SOURCE_FILES=\
                b64/b64.c\
                b64/urlsafe_b64.c\
                cJSON/cJSON.c\
                qiniu/auth_mac.c\
                qiniu/base.c\
                qiniu/base_io.c\
                qiniu/cdn.c\
                qiniu/conf.c\
                qiniu/fop.c\
                qiniu/http.c\
                qiniu/io.c\
                qiniu/macro.h\
                qiniu/qetag.c\
                qiniu/reader.c\
                qiniu/resumable_io.c\
                qiniu/rs.c\
                qiniu/tm.c\
    
    all:$(SOURCE_FILES)
            gcc -g -c -fPIC $^ $(INCLUDE_PATH) -lcurl -lcrypto -lssl -lm
            gcc -shared -o libqiniu.so *.o  -lcurl -lcrypto -lssl -lm
    install:
            sudo cp libqiniu.so /usr/local/lib
    uninstall:
            sudo rm -rf /usr/local/lib/libqiniu.so
    clean:
            rm -rf *.o
            rm -rf *.so
    

      

    上面的Makefile是把所有代码编译为.o目标文件。

    4.我们可以使用工具ar打包为静态库

    ar rcs libqiniu.a *.o
    

    5.我们也可以基于.o文件构建动态库

    gcc -shared -o libqiniu.so *.o  -lcurl -lcrypto -lssl -lm
    

    6.最终得到的构建完毕的发布包:

    .
    ├── include
    │   ├── b64
    │   │   ├── b64.h
    │   │   └── urlsafe_b64.h
    │   ├── cJSON
    │   │   └── cJSON.h
    │   └── qiniu
    │       ├── base.h
    │       ├── cdn.h
    │       ├── conf.h
    │       ├── fop.h
    │       ├── http.h
    │       ├── io.h
    │       ├── macro.h
    │       ├── qetag.h
    │       ├── reader.h
    │       ├── region.h
    │       ├── resumable_io.h
    │       ├── rs.h
    │       └── tm.h
    └── lib
        ├── libqiniu.a
        └── libqiniu.so
    

      

  • 相关阅读:
    P5858
    P1171
    树莓派显示CPU温度
    Docker容器文件系统位置
    Python返回列表中距离最小的点
    【实用】ubuntu和python快速换源
    shell下实现echo彩色输出
    mysql查询主表有数据,副表0条数据的列表
    swagger加请求头带token
    Error running $classname: Command line is too long. Shorten command line for $classname
  • 原文地址:https://www.cnblogs.com/cqwo/p/14043057.html
Copyright © 2011-2022 走看看