Unix/Linux下的静态库和动态库

本文详细介绍了如何创建和使用静态库与动态库。包括编写C源文件、使用GCC编译器进行编译和链接,以及如何设置环境变量来支持动态库的运行。对于动态库还介绍了库文件的位置配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

静态库

产生库: 写若干个c文件(函数或者全局变量,不应有main),编译(gcc -c ...),

打包成库(ar -r libxxx.a若干个.o),写一个.h文件(函数或者全局变量的声明)

产生可执行文件

写c程序,#include库的头文件,可以使用库里面的函数和变量,gcc libxxx.a c程序文件,

或者gcc -lxxx -L库文件所在的目录  c程序文件,或者设置环境变量LIBRARY_PATH值为库文件所在目录从 而省略-L选项。

执行可执行文件:执行可执行文件


动态库

产生库:写若干个c文件(函数或者全局变量,不应有main),

gcc [-fpic] -shared -o libxxx.so ...(若干个c程序文件),

产生可执行文件:

写c程序(#include库的头文件,可以使用库中的函数和变量),

gcc -lxxx -L库文件所在目录 c程序文件,

或者设置环境变量LIBARAY_PATH的值为库文件所在目录从而省略-L选项 。

执行可执行文件:

先把库文件复制到/lib或者/usr/lib目录下或者设置环境变量LD_LIBRARY_PATH值作为库文件所在目录,再执行可执行文件。

~/.bashrc 

PATH=$PATH:.

export LIBRARY_PATH=$LIBRARY_PATH:库文件目录

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:动态库文件目录

nm:查看动态库中的文件

升级库:把“产生库”的过程重复一遍。如果是动态库,可执行文件会自动使用新库,如果是静态库,还需要重复“产生可执行文件”的过程,新的可执行文件使用的才是新库。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值