静态库动态库
库
区别
库文件有两种,静态库和动态库(共享库),区别是:
静态库在程序的链接阶段被复制到了程序中;
动态库在链接阶段没有被复制到程序中,而是程序在运行时由系统动态加载到内存中供程序调用。
好处
1.代码保密
2.方便部署和分发
静态库
命名
libXXX.a (xxx)自定义
gcc -c add.c min.c
ar rcs libxxx.a add.o min.o
gcc main.c -o app -I ./include/ -l calc -L./lib
动态库
命名
libXXX.so (xxx)自定义 (windows .dll)
制作
gcc -c -fpic/-fPIC a.c b.c
gcc -shared a.o b.o -o libcalc.so
ldd 检查依赖
依赖配置
//1
用户级别
.bashrc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/pre/Linux/libma.so
. .bashrc
系统级别
sudo vim /etc/profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/pre/Linux/libma.so
source /etc/profile
//2
sudo vim/etc/ld.so.conf
sudo ldconfig
//3
/lib/,/user/lib
对比
静态库
速度快。移值方便
浪费系统资源,更新,部署,发布更麻烦
动态库
共享库,更新,部署,发布简单,可以控制何时加载
速度慢,发布需提供动态库
本文来自博客园,作者:InsiApple,转载请注明原文链接:https://www.cnblogs.com/InsiApple/p/15955917.html