Linux动态库

Posted Toney_y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux动态库相关的知识,希望对你有一定的参考价值。

命名规则:lib+名字+.so

 

2)制作动态库步骤:

  1.生成与位置无关的代码(.o文件)

    gcc   -fPIC  -c  *.c

  2.打包.o文件,生成库文件

  gcc  -shared  -o  libMyTest.so  *.o  -Iinclude

 

3)动态库使用:

  1.gcc  main.c  ./lib/libMyTest.so  -o   app  -Iinclude

  2.gcc  main.c  -L./lib  -lMyTest  -Iinclude  -o  app

 

4)解决程序知性时动态库无法加载的问题

  1.放到系统库目录中  ----不建议使用

  2.临时调试:

    环境变量:LD_LIBREARY_PATH=动态库的路径设置给该变量

    将设置的值,导入到系统环境变量中,export  LD_LIBREARY_PATH

  3.加到bashrc文件中,重启终端

  4.   4.1需要找动态链接器的配置文件  --  /etc/ld.so.conf

     4.2动态库的路径写到配置文件中  --  绝对路径

      4.3更新  ---  sudo  ldconfig  -v

 

5)优点:

  1、执行程序体积小

  2、动态库更新,不需要改变程序

6)缺点:

  1、发布程序时,需要将动态库提供给客户

  2、加载速度相对缓慢

 

以上是关于Linux动态库的主要内容,如果未能解决你的问题,请参考以下文章

windows动态库与Linux动态库

linux下,有几个.so。如何将这几个动态库编译成一个动态库

请教关于linux中静态库与动态库的问题

[Linux 高并发服务器]制作静态库与动态库

Linux动态库与静态库

Linux 动态库 静态库