Linux静态库与动态库使用方法教程.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《Linux静态库与动态库使用方法教程.docx》由会员分享,可在线阅读,更多相关《Linux静态库与动态库使用方法教程.docx(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Linux静态库与动态库使用方法教程Linux静态库与动态库使用方法教程Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。这篇文章主要介绍了Linux静态库与动态库实例详解的相关资料,希望通过本文能帮助到大家,让大家理解把握这部分内容,需要的朋友能够参考下Linux静态库与动态库实例详解1.Linux下静态链接库编译与使用首先编写如下代码:/main.c#includetest.hintmain()test();return0;/test.h#includeusingnamespacestd;voidtest();/test.c#includetest.hvo
2、idtest()couttest!然后编译:1.gcc-ctest.c/生成目的文件2.arcrvlibtest.atest.o/生成静态链接库libtest.a3.g+-omainmain.c-ltest/编译main程序同时链接libtest.a静态库4./main/运行main程序2.Linux下动态链接库编译与使用代码与上述一致。然后编译:1.g+-fPIC-shared-olibtest.sotest.c/生成动态链接库libtest.so2.g+-omainmain.c-ltest/调用动态链接库libtest.so3./main/运行main程序3.链接时缺失了相关目的文件(.o
3、)代码与上述一致。编译经过如下:1.gcc-ctest.c2.gcc-cmain.c3.gcc-omainmain.o这时,你会发现,报错了:undefinedreferencetotest.这就是最典型的undefinedreference错误,由于在链接时发现找不到某个函数的实现文件,本例中test.o文件中包含了test()函数的实现,所以假如按下面这种方式链接就没事了。1.gcc-omainmain.otest.o【扩展】:其实上面为了让大家愈加清楚底层原因,我把编译链接分开了,下面这样编译也会报undefinedreference错,其实底层原因与上面是一样的。gcc-omainma
4、in.c/缺少test()的实现文件需要改成如下形式才能成功,将test()函数的实现文件一起编译。gcc-omainmain.ctest.c/ok,没问题了4.链接时缺少相关的库文件(.a/.so)在此,只举个静态库的例子,假设源码与上述一致。1.把test.c编译成静态库:gcc-ctest.csr-rctest.atest.ogcc-cmain.c2.生成可执行程序:gcc-omain-main.o此时同样出现undefinedreferencetotest报错。其根本原因也是找不到test()函数的实现文件,由于该test()函数的实如今test.a这个静态库中的,故在链接的时候需要在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 静态 动态 使用方法 教程
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内