1.下载代码到本地
git clone https://github.com/qiniu/c-sdk.git
如果国外下载速度慢,可以用码云的镜像库
git clone https://gitee.com/cqnews/c-qiniu-sdk.git
2.该项目依赖库curl和openssl库
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