markdown Linux的下动态库路径配置,静态库,动态库的制作与使用

Posted

tags:

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

# 动态库无法加载:
### 1.临时设置:
#### 在终端输入 export LD_LIBRARY_PATH=动态库的路径:\$LD_LIBRARY_PATH  这样做的好处是不覆盖原有的LD_LIBRARY_PATH环境变量的值
### 2.永久设置:
#### 用户级别
#####  ~/.bashrc
##### 配置完成:source ~/.bashrc
#### 系统级别:
#### /etc/profile
#### source /etc/profile
### 3.推荐!! /etc/ld.so.cache文件列表
#### 找到一个配置文件 /etc/ld.so.conf
#### 把动态库的绝对路径添加到文件中
#### 执行一个命令:
#### sudo ldconfig -v
1.库是什么?

    二进制文件
    将源代码 - 》二进制格式的源代码
      .c .cpp-\>.a, .so 库文件

2.库制作出来之后, 如何给用户使用?

  头文件:头文件中包含了函数的声明
  制作出的库文件:库文件中包含了函数的实现

3. 静态库的制作和使用
  命名规则: libtest.a
    lib - 固定头
    xxx - 库的名字
    .a - 扩展名

  制作步骤:
    原材料:源代码.c .cpp
    将.c文件生成.o
      gcc a.c b.c -c
    将.o 打包
      ar rcs 静态库的名字 原材料
        例:ar rcs libtest.a a.o b.o
      ar - archive
    库的使用:
      gcc test.c -I ./ -L./lib -lmycalc -o app
        -L: 指定库的路径
        -l:指定库的名字
        -I: 执行头文件的路径

2.动态库的制作和使用
  命名规则:
    libxxx.so
  制作步骤
    将源文件生成.o
      gcc a.c b.c -c -fpic(fPIC)
    打包
      gcc -shared a.o b.o -o libxxx.so
    库的使用
      头文件head.h
      动态库 libtest.so
    gcc main.c -I ./ -L ./ -l test -o app

3.file 命令查看文件类型
  格式:file filename

4.ldd 查看可执行文件依赖的库文件
  格式:ldd 可执行文件名

以上是关于markdown Linux的下动态库路径配置,静态库,动态库的制作与使用的主要内容,如果未能解决你的问题,请参考以下文章

linux下添加动态链接库路径动态库加载等方法

深入理解计算机系统CSAPP Ch7:静动态库制作与神奇的库打桩机制

编译链接实战(10)linux动态库so查找路径全面盘点

Linux Make问题

Windows下静态动态库的封装和使用(图解)

Windows下静态动态库的封装和使用(图解)