易截截图软件、单文件、免安装、纯绿色、仅160KB

在linux下创建库函数

Linux下创建库函数
By luster  
luster@linuxaid.com.cn
2001-8-16
本文件主要参考Program Library HOWTO,
作者是luster(hwang@ustc.edu),
所有非商业目的的再次发行本文件都是允许的,不过请保留作者信息和本版权声明。本文件首先在www.linuxaid.com.cn发布。
1. 介绍
使用GNU的工具我们怎么在Linux下创建自己的程式函数库?一个“程式函数库”简单的说就是个文件包含了一些编译好的代码和数据,这些编译好的代 码和数据能在事后供其他的程式使用。程式函数库能使整个程式更加模块化,更容易重新编译,而且更方便升级。
程式函数库可分为3种类型:静态函数库 (static libraries)、共享函数库(shared libraries)和动态加载函数库(dynamically loaded libraries)。
静态函数库是在程式执行前就加入到目标程式中去了;而共享函数库则是在程式启动的时候加载到程式中,他能被不同的程式共享;动态加载函数库则能在程式 运行的所有时候动态的加载。实际上,动态函数库并非另外一种库函数格式,差别是动态加载函数库是怎么被程式员使用的。后面我们将举例说明。
2. 静态函数库
静态函数库实际上就是简单的一个普通的目标文件的集合,一般来说习惯用“.a”作为文件的后缀。能用ar这个程式来产生静态函数库文件。Ar 是archiver的缩写。静态函数库目前已不在像以前用得那么多了,主要是共享函数库和之相比较有非常多的优势的原因。慢慢地,大家都喜欢使用共享函数 库了。不过,在一些场所静态函数库仍然在使用,一来是保持一些和以前某些程式的兼容,二来他描述起来也比较简单。
静态库函数允许程式员把程式link起来而不用重新编译代码,节省了重新编译代码的时间。不过,在今天这么快速的计算机面前,一般的程式的重新编译也 花费不了多少时间,所以这个优势已不是像他以前那么明显了。静态函数库对研发者来说还是非常有用的,例如你想把自己提供的函数给别人使用,不过又想对函数 的原始码进行保密,你就能给别人提供一个静态函数库文件。理论上说,使用ELF格式的静态库函数生成的代码能比使用共享函数库(或动态函数库)的程式运行 速度上快一些,大概1-5%。
创建一个静态函数库文件,或往一个已存在地静态函数库文件添加新的目标代码,能用下面的命令:
ar rcs my_library.a file1.o file2.o
这个例子中是把目标代码file1.o和file2.o加入到my_library.a这个函数库文件中,如果my_library.a不存在 则创建


相关文档:

Linux vmalloc的实现

内核版本:2.6.28
linux如何利用伙伴系统,slab分配器分配内存,用这些方法得到的内存在物理地址上都是连续的, 然而,有些时候,每次请求内存时,系统都分配物理地址连续的内存块是不合适的,可以利用小块内存“连接”成大块可使用的内存.这在操作系统设计中也被称为 “内存拼接”,显然,内存拼接在需要较大内 ......

Linux下core文件调试方法

在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息)。使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数。
1.core文件的生成开关和大小限制
 1)使用ulimit -c命令可查看core文件的生成开关。若结果为0,则表示关闭了此功能,不会生成core文件。
......

linux socket学习笔记(第二章)


域和地址族
    有一个很恰当的比喻说明套接口编程,套接口就好比电话,而电话网中的电话号码就好像套接口地址。说明套接口可以用特定的地址来标示自己。并不是所有的套接口都需要地址,比如无名套接口就不需要地址,例如函数socketpair(2)就生成了一对互相可以连接但是却没有地址的套接口。书中比喻说就 ......

实现Linux虚拟系统与Windows互传文件

     本人安装的是Vmware 6.5精简版,导致后来我想在虚拟机和Windows下互传不了文件,发现少了linux.iso镜像文件。我在网上找到并把它放到虚拟机的安装目录下,然后启动虚拟机下的linux操作系统,虚拟机--->设置,单击CD/DVD,选择使用ISO镜像,路径指向linux.iso,然后在/mnt/cdrom下就有了vmware-t ......

Linux的日志基础

配置文件
/etc/syslog.conf
常用的几个log文件
1、/var/log/boot.log(自检过程)
2、/var/log/cron   (crontab守护进程)
3、/var/log/maillog  (发送到系统或从系统发出的电子邮件的活动)
4、/var/log/syslog  (它只记录警告信息,常常是系统出问题的信息,所以更应该关注该文件)
5、/va ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号