Linux动态库/静态库创建与使用

来源:互联网 发布:alpine php 编辑:程序博客网 时间:2024/06/02 10:59

静态库创建过程:

1编写文件 开始连接

       gcc  -c mylib0.c  -o mylib0.o

2将目标文件加入库中

   ar cqs  libmylib0.a mylib0.o

3、将库文件拷贝到/usr/lib

     sudo mv libmylib0.a /usr/lib

4、创建头文件 mylib0.h

5、在其他文件中使用库

6、连接静态库

    注意gcc默认只连接libc库,故需要使用 -I添加库

    gcc    test.c  -o test  /usr/lib/libmylib0.a

   *.在程序中使用静态库
 (1)如果是标准C语言库我们可以不指定其库路径和库名称
(2)如果静态库处于/lib或/usr/lib下
gcc -o test test.c /usr/lib/libm.a 或 gcc -o test test.c -lm
他们的效果相同。-lm意味着命名为libm.a或libm.so的文件(注意Linux下的库文件都要以lib开头)。
(3)如果要指定静态库所在的路径
可以gcc test.c -L/usr/lib -lm

动态库:

1>首先生成目标文件,但是此时要加编译器选项-fpic和链接器选项-shared

gcc -fpic  -c  add.c

gcc -fpic  -c  sub.c

生成中间文件add.o和sub.o

2>其次生成动态库

gcc  -shared –o  libtiger.so  add.o sub.o

使用动态链接库

在编译程序时,使用动态链接库和静态库是一致的,使用”-l库名”的方式,在生成可执行文件的时候会链接库文件。

1>使用命令:

   gcc -o  main  main.c -L  ./  -ltiger

引用:http://blog.chinaunix.net/uid-25885064-id-3066814.html

            http://blog.csdn.net/tigerjibo/article/details/6992531

1 0