linux库文件

库文件:预先编写好的某些特定功能的代码集合

1、静态库:会在链接时使用,将库中的内容直接链接到最终的可执行文件中。可执行文件中相当于有了静态库的副本,所以执行时不再需要静态库。

windows: xxxx.lib
linux: xxxxx.a

静态库: 功能模块源代码 list.c vector.c set.c map.c stack.c queue.c
C++ 中的STL 线程库 libevent库
将所有的源代码文件编译成中间件

ar crv libxxxxxx.a 所有的中间文件

使用: gcc -o main mian.c -L 库的路径 -l 库的名称

echo $ LD_LIBRARY_PATH 查看环境变量的值

2、动态库(共享库)
动态库在链接时,不会将内容复制到可执行文件中,只是给一个链接。在程序执行时,由操作系统动态加载共享库到内存上来执行。

windows: xxxxx.dll
linux: xxxxxxxx.so

动态库的生成: gcc -shared -fPIC -O libxxxxx.so 功能代码源文件
动态库的使用: gcc -o main main.c -L库的路径 -l 库的名称

操作系统在加载共享库只会在 /lib /usr /lib(只有root用户有权限管理)
修改环境变量: LD_LIBRARY_PATH
如果只是在终端上直接修改,只会对当前终端有效,换一个终端则无效

配置文件:~/. bashrc
exprot LD_LIBRARY_PATH = 库的绝对路径

echo $ LD_LIBRARY_PATH 查看环境变量的值

静态库和动态库的区别:
静态库在链接时将用到的方法包含到最终生成的可执行程序中
动态库不包含,只做标记,在运行程序时才动态加载
总结:静态库和动态库的区别: 静态库在链接时使用
动态库在执行时使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值