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

在Linux中创建静态库和动态库


我们通常把一些公用函数制作成函数库,供其它程序使用。
函数库分为静态库和动态库两种。
静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。
动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。
本文主要通过举例来说明在Linux中如何创建静态库和动态库,以及使用它们。
在创建函数库前,我们先来准备举例用的源程序,并将函数库的源程序编译成.o文件。
第1步:编辑得到举例的程序--hello.h、hello.c和main.c;
hello.h(见程序1)为该函数库的头文件。
hello.c(见程序2)是函数库的源程序,其中包含公用函数hello,该函数将在屏幕上输出"Hello XXX!"。
main.c(见程序3)为测试库文件的主程序,在主程序中调用了公用函数hello。
 程序1: hello.h
 #ifndef HELLO_H
 #define HELLO_H
 
 void hello(const char *name);
 
 #endif //HELLO_H
 程序2: hello.c
 #include <stdio.h>
 
 void hello(const char *name)
 {
  printf("Hello %s!\n", name);
 }
  程序3: main.c
 #include "hello.h"
 
 int main()
 {
  hello("everyone");
  return 0;
 }
第2步:将hello.c编译成.o文件;
无论静态库,还是动态库,都是由.o文件创建的。因此,我们必须将源程序hello.c通过gcc先编译成.o文件。
在系统提示符下键入以下命令得到hello.o文件。
# gcc -c hello.c
#
(注1:本文不介绍各命令使用和其参数功能,若希望详细了解它们,请参考其他文档。)
(注2:首字符"#"是系统提示符,不需要键入,下文相同。)
我们运行ls命令看看是否生存了hello.o文件。
# ls
hello.c hello.h hello.o main.c
#
(注3:首字符不是"#"为系统运行结果,下文相同。)
在ls命令结果中,我们看到了hello.o文件,本步操作完成。
下面我们先来看看如何创建静态库,以及使用它。
第3步:由.o文件创建静态库;
静态库文件名的命名规范是以lib为前缀,紧接着跟静态库名,扩展名为.a。例如:我们将创建的静态库名为myhello,则静态库文件名就是libmyhello.a。在创建和使用静态库时,需要注意这点。创建静态库用ar命令。
在系统提示符下键入以下命令将创建静态库文件libmyhello.a。
# ar cr li


相关文档:

LINUX进程等信息查看

查看发行版信息:
lsb_release -a 这个最详细
查看内核和操作系统位数:
uname -a
64位操作系统有类似信息:.... x86_64 x86_64 x86_64...
32位操作系统有类似信息:.... i686 i686 i386...
查看cpu信息:
more /proc/cpuinfo
查看和控制系统服务(如 iptables防火墙的开和关):
chkconfig 查看和设定服务在不同 ......

Linux 0.12内核

Linux使用从1970年1月1日0时0分0秒起到开机时经过的秒数作为开机时间, 是在main.c和mktime.c中进行初始化的.
1. linux/init/main.c
/*
 * read current time from CMOS.
 * 访问CMOS需要通过端口0x70, 0x71进行.
 * 读数据时,先用OUT指令向0x70发送要读取字节的偏移位置值, 然后用IN指令从0x71读数据. ......

linux ssh 常用命令

ssh常用命令
目录:
1. Basic Instructions /基本指令
2. wget /下载工具
3. Crontab /定时任务
4. tar/tar.gz /压缩文件
5. vi /编辑器
1. Basic Instructions基本操作命令
通常来说,使用"$[Instructions] --help"可以获得以下各个命令[instructions]的帮助,包含其参数列表的定义。
-ls 列出当前文件夹 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号