七牛云SDKLinux环境下C SDK的编译(转)
1.下载代码到本地
git clone https://github.com/qiniu/c-sdk.git
如果国外下载速度慢,可以用码云的镜像库
git clone https://gitee.com/cqnews/c-sdk.git
2.该项目依赖库curl和openssl库
sudo apt-get install libcurl4-openssl-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
上面的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
七牛云SDKLinux环境下C SDK的编译(转)的更多相关文章
- android源码环境下用mmm/mm编译模块,输出编译log到文件的方法
android源码环境下用mmm/mm编译模块,输出编译log到文件的方法 1,在android目录下直接用mmm命令编译, log信息保存在android目录下 mmm packages/apps/ ...
- Centos 7(Linux)环境下安装PHP(编译添加)相应动态扩展模块so(以openssl.so为例)
https://blog.csdn.net/shinesun001/article/details/54312402 在centos 7环境下搭建好Lnmp环境之后,发现安装的php有好多扩展都没有安 ...
- 实验七:Xen环境下cirrOS的安装配置
实验名称: Xen环境下cirrOS的安装配置 实验环境: 这里的cirrOS和实验六中的busybox的启动方式相同,唯一的区别就是我们使用的cirrOS镜像中,已经包含了根文件系统.内核文件以及r ...
- Android Studio2.1.2 Java8环境下引用Java Library编译出错
转载请注明出处:http://www.cnblogs.com/LT5505/p/5685242.html 问题:在Android Studio2.1.2+Java8的环境下,引用Java Librar ...
- qt5.11.2+vs2017环境下opencv3.4.1编译配置
OpenCV是一个开源的计算机库,它可以帮助视觉工作者做很多富有创造性的工作,在图像处理领域扮演着重要的角色.由于opencv3.x的存在,不管你是学生还是研究人员,是专家还是初学者,都可以快速的建立 ...
- TensorFlow Python3.7环境下的源码编译(三)编译
这里要为仅支持 CPU 的 TensorFlow 构建一个 pip 软件包,需要调用以下命令: $ bazel build --cxxopt="-D_GLIBCXX_USE_CXX11_AB ...
- Windows环境下的RTKPlot_Qt版本编译时遇到的问题和解决方法
在使用了 RTKLIB开源包自带的 rtkplot.exe后,知道了它所具有的功能,就想着如何模仿它做出一个 demo.一开始看的是之前下载的 2.4.2版本的 RTKLIB,里面是使用 Delphi ...
- Win 10环境下6sV2.1模型编译心得
最新版本6sV2.1模型是通过FORTRAN95编写的,2017年11月代码编写完成,2018年11月发布在模型官网上.通常我们在使用过程中都是调用模型的.exe可执行文件,而下载下来的是FORTRA ...
- Linux 环境下 C++ 的开发编译
Linux环境下C++程序的开发编译学习笔记 环境:vmware 运行下的Ubuntu 16.04 姓名:谢津 时间:2018/5/24 内容:1)vim的安装及配置:2)第一个C++程序的编写与编译 ...
随机推荐
- 用了Redisson的Spring Boot Starter搞的我都想重写个
在对接一个小程序推送的框架时,需要将 access_token 存储到 Redis 中,框架中提供了存储逻辑,只需要将 RedissonClient 对象传进去即可. 框架内部在用 Redisson ...
- Web基础_0x00_Web工作方式
web工作方式 对于普通的上网过程,系统其实是这样做的:浏览器本身是一个客户端,当输入URL的时候,首先浏览器会去请求DNS服务器,通过NDS获取相应的域名对应的IP,然后通过IP地址找到IP对应的服 ...
- 【硬件】HDMI接口HPD原理
目录 一.什么是HPD? 二.HDMI的HPD(热插拔)原理 三.HDMI源端对HPD信号有什么要求? 由于项目需要通过HDMI获取EDID的数据,需要学习一下其获取的工作原理,所以在这里记录下. 一 ...
- Android RFID调试总结
调试了包括驱动,jni层,当然也熟悉了下应用层. 1. 驱动层包括修改: device/eastaeon/aeon6735_65c_l/init.project.rc //去 ...
- 为什么思维导图软件MindManager成为了企业培训必备的工具
企业培训,无论是前期准备.中间的演讲演示.还是后期的总结整理等.MindManager都可以以不同的形式,给你更好的培训方式.下面就来看看MindManager是怎么协助企业培训的吧: 前期准备--制 ...
- 使用Sidechain EQ优化FLStudio的贝斯和底鼓
混音的目标之一是平衡各个声音的音量.当两个声音占据相同的频率范围时,有时就比较难处理.这是贝司和底鼓之间经常会碰到的情况.很多时候我们会使用压缩(compression)来降低他们的音量. 然而,有 ...
- Go-Web编程_表单_0x02_验证表单的输入
开发Web的一个原则就是,不能信任用户输入的任何信息,所以验证和过滤用户的输入信息就变得非常重要,我们经常会在微博.新闻中听到某某网站被入侵了,存在什么漏洞,这些大多是因为网站对于用户输入的信息没有做 ...
- nginx学习sub_filter模块
用户替换html中的字符 location / { root /opt/app/code/; random_index on; index index.html index.htm; sub_filt ...
- Linun中配置redis密码
这里以linux服务器为例,为redis配置密码. 1.第一种方式 (当前这种linux配置redis密码的方法是一种临时的,如果redis重启之后密码就会失效,) (1)首先进入redis,如果没有 ...
- QBXT 提高组储备营 2020.夏 游记
DAY 1 是第一天呐!老师好强!讲得好仔细!连我都全懂了![doge] 突然对后面几天充满了期待-- 复习内容:二分,排序,贪心,搜索(好评) 新知识:Huffman树及Huffman编码,对拍,二 ...