linux中动态库 和 静态库

首先: 我们需要知道动态库和静态库的特征
静态库 : .a
动态库 : .so
常用 libadd.a libadd.so
动态库: 把目标编译成特殊的二进制程序,自身不能直接执行,但可以被调用 场景: 客户端更 只更新某个模块
静态链接库:把一系列的.o文件一起生成一个特殊的二进制文件,自身不能执行,但是可一个其他.c文件编译成一个新的可执行程序

在这里插入图片描述

生成动态库

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

其实上述代码可以 简单的写为普通的依赖 但是静态库的生成即使用对大量的依赖作用显得比较重要了,别人就可以直接使用你的.a文件、

、来看看 动态的
在这里插入图片描述

在这里插入图片描述

我们看到 libadd.so 确实执行不了 但 目标文件可以使用

生成动态库的 命令 : gcc -test.c -shared -fPIC -o libadd.so

                                 ldd  可以查看一个可执行程序依赖了哪些动态库 
                                 LD_LIBRARAY_PATH     设定环境变量 去提醒系统去哪找

C++的第三方库 需要源码编译成静态库/动态库才能使用,因为编译环境差异,这个过程非诚痛苦的

发布了90 篇原创文章 · 获赞 13 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_44030580/article/details/103558478
今日推荐