首页 > 代码库 > Linux 静态库与动态库

Linux 静态库与动态库

静态库(.a)

一个deal.c  usedeal.c

技术分享

 

 技术分享

重点  

1. gcc -c deal.c 

 生成 deal.o  

2. ar -rsv libdeal.a  deal.o

 生成 libdeal.a

2.5  可以通过ar  -t libdeal.a 看一个静态库都包含哪些obg文件

技术分享

3. gcc -o usedeal usedeal.c -L./ -ldeal

生成可执行程序usedeal

4. ./usedeal

技术分享

 

动态库(.so)

usedeal.c

技术分享

deal.h

技术分享

动态链接

1 生成.o文件

gcc -c -fPIC -o deal.o deal.c

-c表示只编译(compile),而不连接。-o选项用于说明输出(output)文件名。gcc将生成一个目标(object)文件deal.o。

注意-fPIC选项。PIC指Position Independent Code。共享库要求有此选项,以便实现动态连接(dynamic linking)。

2生成.so文件

gcc -shared -o deal.so deal.o

库文件以lib开始。共享库文件以.so为后缀。-shared表示生成一个共享库。

 3.gcc -o test usedeal.c -ldeal -L.

生成test可执行程序

./test

技术分享

动态加载

待续。。

写的太急 很多地方待补充(╯—﹏—)╯( ┷━━━┷ 

参考

http://www.cnblogs.com/vamei/archive/2013/04/04/2998850.html

http://www.codeceo.com/article/linux-library.html

Linux 静态库与动态库