七牛云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

  

posted @ 2020-11-26 16:40  流逝的轻风  阅读(244)  评论(0编辑  收藏  举报