欢迎来到天天文库
浏览记录
ID:48055475
大小:367.50 KB
页数:31页
时间:2020-01-13
《Linux下一些实用的开源库使用-电子版课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2021/9/14第1页Linux下一些实用的开源库使用2021/9/14第2页一些开源库简介GLIB介绍BOOST介绍TIPC介绍GLIB详细介绍基本内容2021/9/14第3页一些开源库简介Linux系统已经深入到大家的日常生活中,比如智能手机、智能电视等。世界上有大量的程序都在Linux系统上进行应用开发。但是在Linux上开发应用程序不如windows有丰富的函数库支持,所有一些开源组织也开发了很多类似windows的一些函数库。例如Glib、Boost、Log4c、Tipc等,下面会分别简单介绍一下这些库的
2、使用场景,Glib会详细讲解使用方法。2021/9/14第4页GLIB介绍gnome是基于gtk+开发的一套桌面环境,gnome和KDE作为两大最流行的桌面环境,在全世界广泛使用。只要是在Linux下工作的开发人员,对于gtk+一定不陌生。而对于glib,这个gtk+下的无名英雄,其功能强大却鲜为人知。今天,在这里简要介绍一下,如果你是开发人员,看完本文,相信你会喜欢上它的。glib不是gllibc,尽管两者都是基于(L)GPL的开源软件。但这一字之差却误之千里,glibc是GNU实现的一套标准C的库函数,而glib
3、是gtk+的一套函数库。在linux平台上,像其它任何软件一样,glib依赖于glibc。2021/9/14第5页GLIB介绍如果你是一个工作3年以上的C语言程序员,现在让你讲讲写程序的苦恼,你可能有很多话要说,但如果你有时间研究一下glib,你会发现,很多苦恼已不再成其为苦恼,glib里很多东西正是你期望已经久的。gobject是glib的精粹,glib是用C实现的,但在很大程序是基于面向对象思想设计的,gobject是所有类的基类。动态数组、链表、哈希表等通用容器,在不同的公司,在不同的时期,在不同的情况下,我们
4、每个人对每一种容器,可能都实现过N次以上。甚至在同一个项目里,出现几份链表的实现,也并非罕见。一直在抱怨,标准C中为什么没有类似于STL的标准容器,让全世界的程序员在数以万次的重复实现它们。2021/9/14第6页glib提供了动态数组、单/双向链表、哈希表、多叉树、平衡二叉树、字符串等常用容器,完全是面向对象设计的,实现得非常精致。不用白不用,别客气了。glib提供了一套完整的宏,利用这些宏编写程序,可以实现跨硬件平台,可以解决大端格式,小端格式,还是PDP格式问题。你开发过跨操作系统的软件吗?在不同的平台下,很多
5、函数有相同的功能,但函数原型,返回值差异巨大,也有的貌合神离,相同的名称有着不同的意义,请看下面这张清单:GLIB介绍2021/9/14第7页GLIB介绍动态库加载函数线程函数信号量函数互斥锁函数事件函数字符集转换函数原子操作函数创建进程函数时间格式IO函数为完成相同的功能,你却要为此写出不同的代码,有了Glib,你只需要同一个函数就以搞到它。GLIB还有很多功能,这里就不一一介绍了。2021/9/14第8页BOOST介绍Boost是什么?一套开放源代码、高度可移植的C++库。谁发起的?C++标准委员会库工作组。所以
6、,质量保证,不怕遇到假冒伪劣产品。boost是一个准标准库,相当于STL的延续和扩充,它的设计理念和STL比较接近,都是利用泛型让复用达到最大化。不过对比STL,boost更加实用。STL集中在算法部分,而boost包含了不少工具类,可以完成比较具体的工作。BOOST介绍BOOST有些什么呢?瞧瞧:正则表达式,可以与POSIXAPI和Perl语言处理正则表达式的功能相媲美,而且还能支持各种字符类型(如char、wchar_t,甚至还可以是自定义字符类型);多线程,想了很久的跨平台多线程库了;数据结构“图”,再加上即将
7、加入标准的hash_set、hash_map、hash_multiset、hash_multimap等等(事实上不少STL实作,如SGISTL,已经支持以上数据结构),C++对数据结构的支持已近完备;python,没错,对Python语言的支持;智能指针,与std::auto_ptr一起善加使用,可杜绝内存泄露,效率更不可和垃圾收集机制GC同日而语;更有循环冗余的CRC、可轻松定义返回多个值函数的元组tuple、可容纳不同类型值的any、对标准库各方面的补充……还在迅速扩大中,部分内容有望进入C++标准库……2021
8、/9/14第9页BOOST介绍2021/9/14第10页下面是BOOST库一些功能描述:Boost.Regex正则表达式库,解决大量模式匹配的问题;Boost.Spirit多用途、递归的预防分析器;使用它可以创建命令行分析器或语言预处理器Boost.Tokenizer把字符序列分割成记号,Boost.Any Array数组,
此文档下载收益归作者所有