库是一种可执行的二进制文件,是编译好的代码。使用库可以提高开发效率。在 Linux 下有静态库和动态库。
静态库在程序编译的时候会被链接到目标代码里面。所以程序在运行的时候不再需要静态库了。因此编译出来的体积就比较大。以 lib 开头,以.a 结尾。
动态库(动态库也叫共享库)在程序编译的时候不会被链接到目标代码里面,而是在程序运行的时候被载入的。所以程序在运行的时候需要动态库了。因此编译出来的体积就比较小。以 lib 开头,以.so 结尾。
静态库的制作步骤:
编写或准备库的源代码
将源码.c 文件编译生成.o 文件
使用 ar 命令创建静态库
测试库文件
动态库制作步骤:
编写或准备库的源代码
将源码.c 文件编译生成.o 文件
使用 gcc 命令创建动态库
测试库文件
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
Linux
+关注
关注
87文章
11300浏览量
209397 -
静态库
+关注
关注
0文章
21浏览量
7427
发布评论请先 登录
相关推荐
Linux下动态库和静态库的制作及使用
一看都清楚明了。(2)ldd命令看动态库,如果目标程序没有链接动态库,则打印“not a dynamic executable” (不是动态
发表于 11-18 17:05
应用程序所依赖的动态库和静态库没有调试信息的原因
的原因可能有这么几个:应用程序在编译时没有指定-g选项,导致可执行程序没有调试信息。应用程序所依赖的动态库和静态库没有调试信息。应用程序的运行时环境没有调试信息,比如libc等。嵌入式
发表于 11-05 06:41
静态链接和静态库
所谓静态链接,就是把库实现的代码整合到最终的二进制文件中,这样的二进制文件会比较大,因为里面既包含了自己写的代码,又包含了调用的库的代码。
评论