首页 技术 正文
技术 2022年11月13日
0 收藏 661 点赞 4,874 浏览 1006 个字

  

命令规则

  lib + 名字 + .so

制作步骤

  1)生成与位置无关的代码(生成与位置无关的代码)

  2)将.o打包成共享库(动态库)

发布和使用共享库

动态库运行原理:

Linux之动态库

生成动态库:

  gcc -fPIC -c *.c -I ./include

Linux之动态库

打包动态库并移动

Linux之动态库

使用动态库:

/***
main.c
***/#include<stdio.h>
#include"MyCalc.h"int main()
{
int a = ;
int b = ;
int result = a + b;
printf("a + b = %d\n",result);
return ;
}

ubuntu1604@ubuntu:~/wangqinghe/C/sharelib$ gedit main.c

ubuntu1604@ubuntu:~/wangqinghe/C/sharelib$ gcc main.c -Iinclude -L ./lib/ -lMyCalc -o myapp

ubuntu1604@ubuntu:~/wangqinghe/C/sharelib$ ls

app  include  lib  main.c  myapp  src

ubuntu1604@ubuntu:~/wangqinghe/C/sharelib$ ./myapp

a + b = 30

ldd 命令:查看程序执行时依赖的所有的库

ubuntu1604@ubuntu:~/wangqinghe/C/sharelib$ ldd myapp

linux-vdso.so.1 =>  (0x00007fffe8d13000)

libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f92ffac7000)

/lib64/ld-linux-x86-64.so.2 (0x00007f92ffe91000)

设置动态库环境变量(临时)

export LD_LIBRARY_PATH=./lib

永久生效:

bansh.rc

将export LD_LIBRARY_PATH=./lib(绝对路径)

解决动态库无法加载

  1. 需要找到动态链接器的配置文件
  2. 动态库的路径写到配置文件中
  3. 更新  sudo idconfig -v

cd etc

ls -l ld.so.conf

vi ld.so.conf

(o 在当前行下行创建一行)

将动态库路径写到该配置文件中(绝对路径)

sudo idconfig -v

Linux之动态库

动态库的优点:

  1. 执行程序体积小
  2. 动态库更新方便(接口没变)

缺点:

  1. 发布程序时,需要将动态库发布给用户
  2. 加载速度较静态库较慢
上一篇: 静态库 VS 动态库
下一篇: spark几个错误
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,028
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,518
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,365
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,146
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,780
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,857