Linux编程之Linux中利用静态库和静态库简介仓酷云
功能实在太强了,在配合exec参数或者通过管道重定向到xargs命令和grep命令,可以完成非常复杂的操作,如果同样的操作用图形界面的工具来完成,恐怕要多花十几陪的时间。1、基础观点
1.1甚么是库
在windows平台和linux平台下都大批存在着库。
实质下去说库是一种可实行代码的二进制情势,能够被操纵体系载进内存实行。
因为windows和linux的平台分歧(次要是编译器、汇编器和毗连器的分歧),因而两者库的二进制是不兼容的。
本文仅限于先容linux下的库。
1.2库的品种
linux下的库有两种:静态库和共享库(静态库)。
两者的分歧点在于代码被载进的时候分歧。
静态库的代码在编译过程当中已被载进可实行程序,因而体积较年夜。
共享库的代码是在可实行程序运转时才载进内存的,在编译过程当中仅复杂的援用,因而代码体积较小。
1.3库存在的意义
库是他人写好的现有的,成熟的,能够复用的代码,你可使用但要记得恪守允许协定。
实际中每一个程序都要依附良多基本的底层库,不成能每一个人的代码都从零入手下手,因而库的存在乎义非同平常。
共享库的优点是,分歧的使用程序假如挪用不异的库,那末在内存里只必要有一份该共享库的实例。
1.4库文件是怎样发生的在linux下
静态库的后缀是.a,它的发生分两步
Step1.由源文件编译天生一堆.o,每一个.o里都包括这个编译单位的标记表
Step2.ar命令将良多.o转换成.a,成娴静态库
静态库的后缀是.so,它由gcc加特定参数编译发生。
详细办法拜见后文实例。
1.5库文件是怎样定名的,有无甚么标准
在linux下,库文件一样平常放在/usr/lib和/lib下,
静态库的名字通常是libxxxx.a,个中xxxx是该lib的称号
静态库的名字通常是libxxxx.so.major.minor,xxxx是该lib的称号,major是主版本号,minor是副版本号
1.6怎样晓得一个可实行程序依附哪些库
ldd命令能够检察一个可实行程序依附的共享库,
比方#ldd/bin/lnlibc.so.6
=>/lib/libc.so.6(0 我们自学,就这个循环的过程中,我们学习了基本操作,用vi,shell,模拟内存的分配过程等一些OS管理。 写学习日记,这是学习历程的见证,同时我坚持认为是增强学习信念的法宝。 现在的linux操作系统如redhat,难点,红旗等,都是用这么一个内核,加上其它的用程序(包括X)构成的。 学习Linux应具备的。[书籍+网络资源] 查阅经典工具书和Howto,特别是Howto是全球数以万计的Linux、Unix的经验总结非常有参考价值通常40%的问题同样可以解决。 任何一个叫做操作系统的东西都是这样子构成的:内核+用户界面+一般应用程序。 熟悉并掌握安装Linux,安装是学习的前提。目前较常见的安装方法有二种: 虽然大家都比较喜欢漂亮的mm,但是在学 linux 的过程中,还是要多和“男人”接触一下:P 遇到问题的时候,出来看说和上网查之外,就是要多用 linux 下的 man 命令找找帮助。 我想即使Linux高手也很难快速准确精练的回答你。 发问的时候一定要注意到某些礼节。因为Linux社区是一个松散的组织、也不承担回复每个帖子的义务。它不是技术支持。
页:
[1]