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

Linux静态库和动态库

库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。库分静态库和动态库两种。 
静态库和动态库的区别
1. 静态函数库
    这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因为如果静态函数库改变了,那么你的程序必须重新编译。
2. 动态函数库
    这类库的名字一般是libxxx.so;相对于静态函数库,动态函数库在编译的时候 并没有被编译进目标代码中,你的程序执行到相关函数时才调用该函数库里的相应函数,因此动态函数库所产生的可执行文件比较小。由于函数库没有被整合进你的程序,而是程序运行时动态的申请并调用,所以程序的运行环境中必须提供相应的库。动态函数库的改变并不影响你的程序,所以动态函数库的升级比较方便。
linux系统有几个重要的目录存放相应的函数库,如/lib /usr/lib。
静态库的使用
静态库的操作工具:gcc和ar 命令。 
编写及使用静态库 
(1)设计库源码 pr1.c 和 pr2.c 
[root@billstone make_lib]# cat pr1.c 
void print1() 

                printf("This is the first lib src!\n"); 

[root@billstone make_lib]# cat pr2.c 
void print2() 

                printf("This is the second src lib!\n"); 

       (2)  编译.c 文件 
[bill@billstone make_lib]$ cc -O -c pr1.c pr2.c 
[bill@billstone make_lib]$ ls -l pr*.o 
-rw-rw-r--        1 bill          bill                    804    4 月  15 11:11 pr1.o 
-rw-rw-r--        1 bill &nbs


相关文档:

第一个嵌入式Linux的驱动程序

   从这个总结正式开始了我的驱动之旅,心情不免有点激动,尽管现在对驱动的编写还很模糊,但还是有纪念意义的……
 
开发平台:
    虚拟机下RedHat9,内核2.4.20.8
    交叉编译编译器:天嵌公司提供的arm-linux-gcc 4.3.3
    内核树:/h ......

Linux驱动之ioctl

在用户空间,使用ioctl系统调用来控制设备,原型如下:
int ioctl(int fd, unsigned long cmd, ...);
第三个参数不表示一个变数目的参数,而是一个类型可选的参数。第三个参数依赖于控制命令。一些命令不用参数,一些用一个整数值,一些使用指针
1、ioctl函数定义命令
在编写ioctl代码之前,首先需要定义命令。为了防止 ......

Linux设备驱动开发详解 笔记4 Linux内核模块

modprobe命令比insmod命令强大,它在加载某模块时会同时加载该模块所依赖的其他模块。使用modprobe命令加载的模块若以“modprobe –r filename”的方式卸载将同时卸载其依赖的模块。
printk打印到var/log/messages
2.6内核中已加载的信息也存在于/sys/module目录下,加载hello.ko后,内核中将包含/sys/mod ......

[转]详解Linux 2.6内核新文件系统变化机制(inotify)

原文地址:http://soft.yesky.com/os/lin/326/2237826.shtml
本文详细地介绍了在 Linux 2.6.13 内核中新引入的文件系统变化通知机制 inotify,并举例说明了它的使用与典型应用案例。
一、引言
众所周知,Linux 桌面系统与 MAC 或 Windows 相比有许多不如人意的地方,为了改善这种状况,开源社区提出用户态需要内核提供 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号