静态库和动态库

  1. 静态库:
    a.c , b.c

gcc a.c -o a.o -c
gcc b.c -o b.o -c

ar crs libx.a a.o b.o

gcc hello.c -o hello -lx
特点:在编译时,立即将库中的相关代码直接复制到可执行文件里,这样这个文件以后的运行就不依赖于此静态库文件了,但是增加了每个文件的尺寸。

  1. 动态库:
    a.c ,  b.c

gcc a.c -o a.o -c
gcc b.c -o b.o -c

gcc -shared fPIC liby.so a.o b.o

gcc hello.c -o hello -ly
特点:在编译时,并未将库中的相关代码复制到可执行文件里,而只是定位了被引用的相关函数,这个文件以后的运行必须要此动态库的支持,优点是节省了大量的存储空间。

posted @ 2013-04-25 21:52  不止所见  阅读(165)  评论(0编辑  收藏  举报