仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 519|回复: 7
打印 上一主题 下一主题

[其他Linux] 带来一篇静态库和静态库 Linux体系程序计划之路

[复制链接]
金色的骷髅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 16:56:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-28 02:29

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表