最近收到用户反馈使用oss c sdk时安装依赖的第三方库比较麻烦,和oss c sdk的开发同学沟通后,推出一键化安装oss c sdk的小工具,在这里和大家分享。
进入正题之前,我们先说说为什么oss c sdk没有直接给出编译好的静态库,而要用户自己安装第三方库。很多使用c进行开发的同学会有这样的体会,c语言不是跨平台的,很多时候开发需要依赖具体的环境,oss c sdk的开发同学为了减少这方面的麻烦,在开发oss c sdk的时候已经有所考虑,使用了apache项目中的apr和apr-util第三方库,最大程度降低了用户在不同平台上开发的成本。但是oss c sdk底层通信使用CURL,解析OSS返回的XML结果使用libxml2(libxml2相对来说比较重,后面考虑使用minixml替代),由于开发平台的多样性,安装CURL和libxml2时使用相同的编译结果显然是不可行的,所以需要用户自己下载oss c sdk依赖的第三方库,然后采用二进制编译的方式,这样就解决了oss c sdk在不同平台上第三方库的编译问题。
针对最近有用户提出希望简化oss c sdk第三方库安装的问题,oss c sdk开发同学结合前面和一些用户一起开发的经验,推出一键化安装的小工具,方便用户快速完成第三方库的安装。下面我们将会和大家一起看一下整个过程,以及需要注意的事项。
1、下载一键化安装oss c sdk的小工具
wget http://gosspublic.alicdn.com/oss_c_sdk_3rd_party_install.sh -O oss_c_sdk_3rd_party_install.sh
wget http://gosspublic.alicdn.com/oss_c_sdk_install.sh -O oss_c_sdk_install.sh
(1)第三方库安装工具oss_c_sdk_3rd_party_install.sh
这个小工具的作用是下载oss c sdk依赖的第三方库,然后按照默认的方式对第三方库进项安装。
需要用户注意的是安装过程中会在/usr/local目录下创建第三方库生成的相应目录,并且安装过程中需要sudo权限。同时,考虑到使用oss c sdk的很多用户是在嵌入式环境下进行开发,所以安装第三方库时针对嵌入式系统进行了一些优化,去除了第三方库一些不必要的功能。
如果用户在安装过程中遇到诸如权限的问题,那么可以修改第三方库编译过程中的一些选项,比如指定适合自己开发环境的
--prefix路径。
(2)oss c sdk静态库一键编译工具oss_c_sdk_install.sh
oss c sdk编译采用auto make的方式,oss_c_sdk_install.sh小工具将会下载最新linux版本的oss c sdk,并使用前面第三方库安装工具的默认编译路径对oss c sdk进行编译。小工具运行完后,用户可以看到生成了oss c sdk的静态库liboss_c_sdk.a。
需要用户注意的是如果第三方库安装工具运行时修改了一些默认选项(主要是--prefix选项),那么请在Makefile.am或者Makefile中修改相应的第三方库头文件以及静态库路径,如下所示:
INCLUDES=\
-I.\
-I/usr/local/include/\
-I/usr/include/libxml2\
-I/usr/local/apr/include/apr-1\
-I/usr/local/apr-util/include/apr-1
liboss_c_sdk_a_CFLAGS=\
-D_LARGEFILE64_SOURCE\
-fPIC
2、开启oss c sdk体验之路
完成了上面的两步,用户可以进入oss c sdk目录下的demo和sample目录,体验使用oss c sdk访问OSS。其中demo目录下包括最基本的上传和下载数据方式,sample目录中包含了对oss c sdk所有接口的使用示例。用户只需要修改oss_config.c中的相应配置项,然后运行make命令,就可以在demo目录下看到生成的oss_c_sdk_demo可执行文件,sample目录中生成oss_c_sdk_sample可执行文件,运行相应的可执行文件,就可以访问OSS服务进行上传和下载数据等操作。
好了,上面分享了如何快速搞定oss c sdk第三方库的安装以及oss c sdk的编译问题,希望对大家使用oss c sdk访问OSS有所帮助。最后,如果你对第三方库的安装有自己的需求,建议参考前面关于如何编译oss c sdk的分享
http://bbs.aliyun.com/read/260851.html?spm=5176.bbsl211.0.0.OhQmqw
。
感谢大家耐心看完这个分享,您有好的建议欢迎及时提出来,我们会持续改进oss c sdk,方便大家使用OSS服务
-------------------------
-------------------------
-------------------------
-------------------------
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。