Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3886285
  • 博文数量: 146
  • 博客积分: 3918
  • 博客等级: 少校
  • 技术积分: 8585
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-17 13:52
个人简介

个人微薄: weibo.com/manuscola

文章分类

全部博文(146)

文章存档

2016年(3)

2015年(2)

2014年(5)

2013年(42)

2012年(31)

2011年(58)

2010年(5)

分类: LINUX

2010-10-21 23:02:32

Lib.h

  1 #ifndef LIB_H
  2 #define LIB_H
  3 
  4 
  5 void foobar(int i);
  6 
  7 #endif
_________________________________________________________
Lib.c
  1 #include
  2 
  3 void foobar(int i)
  4 {
  5    printf("Printing From Lib.so %d\n",i) ;
  6    sleep(-1);
  7 
  8 }
__________________________________________________________
program_1.c

  1 #include "Lib.h"
  2 
  3 int main()
  4 {
  5     foobar(1);
  6     return 0;
  7 }
__________________________________________________________

root@libin:~/project/dso# ll
总用量 20
drwxr-xr-x 2 root  root  4096 2010-10-21 22:58 ./
drwxr-xr-x 8 libin libin 4096 2010-10-21 22:17 ../
-rw-r--r-- 1 root  root    99 2010-10-21 22:42 Lib.c
-rw-r--r-- 1 root  root    59 2010-10-21 22:18 Lib.h
-rw-r--r-- 1 root  root    58 2010-10-21 22:30 program_1.c


生成共享对象文件的命令
root@libin:~/project/dso# gcc -fPIC -shared -o Lib.so Lib.c
-shared  表示生成共享对象 
-fPIC    暂不解释

root@libin:~/project/dso# ll
总用量 28
drwxr-xr-x 2 root  root  4096 2010-10-21 22:59 ./
drwxr-xr-x 8 libin libin 4096 2010-10-21 22:17 ../
-rw-r--r-- 1 root  root    99 2010-10-21 22:42 Lib.c
-rw-r--r-- 1 root  root    59 2010-10-21 22:18 Lib.h
-rwxr-xr-x 1 root  root  6772 2010-10-21 22:59 Lib.so*
-rw-r--r-- 1 root  root    58 2010-10-21 22:30 program_1.c

这样在当前目录下就生成了共享对象文件Lib.so。这个共享对象文件包含foobar函数。

然后我们就可以编译链接我们的program_1.c
root@libin:~/project/dso# gcc -o program program_1.c  ./Lib.so
root@libin:~/project/dso# ll
总用量 36
drwxr-xr-x 2 root  root  4096 2010-10-21 23:00 ./
drwxr-xr-x 8 libin libin 4096 2010-10-21 22:17 ../
-rw-r--r-- 1 root  root    99 2010-10-21 22:42 Lib.c
-rw-r--r-- 1 root  root    59 2010-10-21 22:18 Lib.h
-rwxr-xr-x 1 root  root  6772 2010-10-21 22:59 Lib.so*
-rwxr-xr-x 1 root  root  7134 2010-10-21 23:00 program*
-rw-r--r-- 1 root  root    58 2010-10-21 22:30 program_1.c







阅读(3144) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

chinaunix网友2010-10-22 11:12:32

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com