Chinaunix首页 | 论坛 | 博客
  • 博客访问: 585254
  • 博文数量: 146
  • 博客积分: 5251
  • 博客等级: 大校
  • 技术积分: 1767
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-10 15:58
文章分类
文章存档

2010年(12)

2008年(129)

2007年(5)

我的朋友

分类: LINUX

2008-10-30 23:54:44

1、事先写好两个程序,如下:
mylib.c:
#include "mylib.h"
int func(int x)
{
return x*x*x;
}
mylib.h:
#ifndef MY_LIB
#define MY_LIB
#include
int func(int x);
#endif

2、将各函数代码所在的源文件编译成目录文件。例如,对于mylib.c,可以用如下命令
  将其编译成目标文件:
  gcc -c mylib.c
  当然在有多个源文件时,只需在gcc 命令行中将其分别列上就可以了,如:gcc -c mylib1.c mylib2.c mylib3.c
  经此一步我们将能够得到各源文件的目标文件。对上例,将得到mylib.o

3、将各目标文件收集起来放到一个静态库文件中。这主要借助于ar命令完成,如:
  ar r ./libtest.a mylib.o
到此为止就可以生成静态库libtest.a了,剩下的只是做下一步了

4、将静态库拷到你的系统默认库目录下和mylib.c的头文件拷到相应的C文件目录下即可:
cp libtest.a /usr/lib/
cp mylib.h /MYSRC/
最后在gcc时用 -ltest 参数加上就行啦。
在编译项里面,-L指定库文件路径,-l指定库文件名字,如果库文件名为libxxx.a,就可以用-lxxx。

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