仓酷云

标题: 带来一篇静态库和静态库 Linux体系程序计划之路 [打印本页]

作者: 金色的骷髅    时间: 2015-1-16 16:56
标题: 带来一篇静态库和静态库 Linux体系程序计划之路
在学习初期,你一定会遇到很多困难,或者说各种困难,所以你最好先将你linux中的重要内容备份,因为,在你学习的过程中,很可能将系统搞废(eg:源混乱等);
 Linux中有两类函数库,分离是静态库和静态库。
  静态函数库:
  这类库的名字通常为libxxx.a;使用静态函数库编译成的文件对照年夜,由于全部函数库的一切数据城市被整合进方针代码中,他的长处就不言而喻了,即编译后的实行程序不必要内部的函数库撑持,由于一切利用的函数都已被编译出来了。固然这也会成为他的弱点,由于假如静态函数库改动了,那末你的程序必需从头编译。
  静态函数库:
  这类库的名字通常为libxxx.so;相对静态函数库,静态函数库在编译的时分并没有被编译进方针代码中,你的程序实行到相干函数时才挪用该函数库里的响应函数,因而静态函数库所发生的可实行文件对照小。因为函数库没有被整合进你的程序,而是程序运转时静态的请求并挪用,以是程序的运转情况中必需供应响应的库。静态函数库的改动其实不影响你的程序,以是静态函数库的晋级对照便利。
  linux体系有几个主要的目次寄存响应的函数库,如/lib/usr/lib.
  上面来先容linux静态函数库的创立和利用:
  例程str_out.hstr_out.cmain.c:
  str_out.h
#ifndefSTR_OUT_H
#defineSTR_OUT_H
voidstr_out(constchar*str);
#endif
str_out.c
#include
#include"str_out.h"
voidstr_out(constchar*str){
printf("%s
",str);
}
main.c
intmain()
{
str_out("helloworld");
return0;
}

  不论是静态函数库仍是静态函数库,都是由*.o方针文件天生。
  以是先gcc-cstr_out.c
  静态函数库由ar命令创立
  本例:ar-crlibstr_out.astr_out.o
  -ccreate的意义
  -rreplace的意义,暗示当拔出的模块名已在库中存在,则交换同名的模块。假如多少模块中有一个模块在库中不存在,ar显现一个毛病动静,其实不交换其他同名模块。默许的情形下,新的成员增添在库的开头处,可使用其他任选项来改动增添的地位。
  到此静态函数库创立终了。
  利用办法:经由过程gcc-ooutmain.c-L.-lstr_out编译main.c就会把静态函数库整合进out.
  个中
  -L指定静态函数库的地位供查找,注重L前面另有.,暗示静态函数库在本目次下查找。
  -l则指定了静态函数库名,因为静态函数库的定名体例是lib***.a,个中的lib和。a疏忽。
  依据静态函数库的特征,此处删除libstr_out.a后out仍然能够运转,由于静态库的内容已整合出来了。
  静态函数库的创立和利用
  gcc-shared-fPCI-ooutmain.c-L.-lstr_out
  用该命令天生libstr_out.so静态函数库。
  gcc-ooutmain.c
  此时还不克不及当即。/out,由于在静态函数库利用时,会查找/usr/lib/lib目次下的静态函数库,而此时我们天生的库不在里边。
  这个时分有好几种办法可让他乐成运转:
  最间接最复杂的办法就是把libstr_out.so拉到/usr/lib或/lib中往。
  另有一种办法exportLD_LIBRARY_PATH=$(pwd)
  别的还能够在/etc/ld.so.conf文件里到场我们天生的库的目次,然后/sbin/ldconfig.
  /etc/ld.so.conf长短常主要的一个目次,内里寄存的是链接器和加载器搜刮共享库时要反省的目次,默许是从/usr/lib/lib中读取的,以是想要顺遂运转,我们也能够把我们库的目次到场到这个文件中并实行/sbin/ldconfig
  别的另有个文件必要懂得/etc/ld.so.cache,内里保留了经常使用的静态函数库,且会先把他们加载到内存中,由于内存的会见速率远宏大于硬盘的会见速率,如许能够进步软件加载静态函数库的速率了

</p>
当你经过一段时间的学习后就应该扩充自己的知识,多学习linux命令,但是不要在初学阶段就系统的学习linux命令。
作者: 透明    时间: 2015-1-18 10:21
再次,Linux是用C语言编写的,我们有学习C语言的基础,读程序和编写代码方面存在的困难小一点,也是我们能较快掌握的原因之一。?
作者: 简单生活    时间: 2015-1-21 20:48
生成新的unispimsp.ksc。”另外得到回复后如果问题解决,向帮助过你的人发个说明,让他们知道问题是怎样解决的。
作者: 小女巫    时间: 2015-1-30 22:17
永中office 2004增强版安装只需要默认安装即可使用并操作大多与win系统雷同,打印机的配置和管理,记录光盘等。
作者: 再见西城    时间: 2015-2-6 16:23
其实老师让写心得我也没怎么找资料应付,自己想到什么就写些什么,所以不免有些凌乱;很少提到编程,因为那些在实验报告里已经说了,这里再写就多余了。
作者: 只想知道    时间: 2015-2-17 06:01
眼看这个学期的Linux课程已经告一段落了,我觉得有必要写一遍心得体会来总结一下这学期对着门课程的学习。
作者: 不帅    时间: 2015-3-5 16:52
我感觉linux的学习,学习编程~!~!就去学习C语言编程!!
作者: 冷月葬花魂    时间: 2015-3-19 20:59
让我树立了很大的信心学好这门课程,也学到了不少专业知识和技能。?




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2