码迷,mamicode.com
首页 > 系统相关 > 详细

Linux 静态库与动态库

时间:2017-03-06 23:41:30      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:arch   logs   lib   选项   补充   后缀   lin   out   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 静态库与动态库

标签:arch   logs   lib   选项   补充   后缀   lin   out   linux   

原文地址:http://www.cnblogs.com/xiaodeyao/p/6512373.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!