gcc生成.a静态库和.so动态库

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

gcc生成.a静态库和.so动态库文件o生成静态库的方法$gcc-cgdfontwu.c$gcc-cgdfontliu.c$gcc-cgdfontbin.c$arrclibgdfont.agdfontwu.ogdfontliu.ogdfontbin.o(ranliblibgdfont.a可生成索引)用nmlibgdfont.a来看里面的目标文件和导出函数(带T标记)。o生成动态库的方法$gcc-cgdfontwu.c$gcc-cgdfontliu.c$gcc-cgdfontbin.c$gcc-olibgdfont.so-shared-fPICgdfontwu.ogdfontliu.ogdfontbin.o-fPIC:表示编译为位置独立的代码,不用此选项的话编译后的代码是位置相关的所以动态载入时是通过代码拷贝的方式来满足不同进程需要,而不能达到真正代码段共享的目的。可用nmlibgdfont.so来看里面导出的函数(带T标记)。用动态库的好处是:更新了动态库之后链结它的程序不用重新编译。o用法在websrv.c中:/*websrv.c*/#includegdfontwu.h#includegdfontliu.h#includegdfontbin.hintgetpng(){...gdImageChar(...,gdFontWu,...);gdImageChar(...,gdFontLiu,...);gdImageChar(...,gdFontBin,...);...return0;}静态库:$gcc-cwebsrv.c$gcc-owebsrvwebsrv.olibgdfont.a动态库:$gcc-owebsrvwebsrv.o-L.-lgdfont$LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH./websrvLD_LIBRARY_PATH=.:$LD_LIBRARY_PATHlddmain可以看到websrv程序所链结的动态库。把libgdfont.so放到/etc/ld.so.conf中列出的目录下就可以不用先指定环境变,注意先ldconfig刷新系统动态库的缓存还有一种ld-rpathdir这样的方法可避免设定环境变量

1 / 2
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功