库的制作与使用

什么是库

库是一种可执行的二进制文件,是编译好的代码。使用库可以提高开发效率。在 Linux 下有静态库和动 态库。因此编译出来的体积就比较大。

静态库在程序编译的时候会被链接到目标代码里面。所以程序在运行的时候不再需要静态库了。因此 编译出来的体积就比较大。以 lib 开头,以.a 结尾

动态库(动态库也叫共享库)在程序编译的时候不会被链接到目标代码里面,而是在程序运行的时候 被载入的。所以程序在运行的时候需要动态库了。因此编译出来的体积就比较小。以 lib

静态库的制作步骤:

1 编写或准备库的源代码

2 将源码.c 文件编译生成.o 文件

3 使用 ar 命令创建静态库

(ar rc 静态库名  编译生成的.o文件)(rc  r:覆盖的意思  c:创建的意思)

4 测试库文件

libmylib.a:   库文件名

mylib:    库名

实验:静态库的制作:

新建 mylib.c 文件,编辑内容如下所示

 我们在 Ubuntu下编译,如下图所示:

 编写测试代码 test.c,编辑内容如下所示:

 编译测试文件 test.c,如下图所示

 运行测试 a.out,如下图所示

动态库制作步骤:

1 编写或准备库的源代码

2 将源码.c 文件编译生成.o 文件

3 使用 gcc 命令创建动态库

4 测试库文件

举例:gcc test.c -lmylib -L

-l:指定动态库的库名 -L:指定动态库的查找位置-L .  表示在当前目录下去查

 实验:动态库的制作:

新建 mylib.c 文件,编辑内容如下所示:

 我们在 Ubuntu下编译,如下图所示:

 编写测试代码 test.c,编辑内容如下所:

 编译测试文件 test.c,如下图所示:

 运行测试 a.out,如下图所示:

 在动态库使用是,系统会默认去/lib,/usr/lib 目录下去查找动态函数库,如果我们使用的库不在里面, 就会提示错误。解决这个问题有三种方法

第一种方法:

将生成的动态库拷贝到/lib 或者/usr/lib 里面去,因为系统会默认去这俩个路径下寻找。

 第二种方法

把我们的动态库所在的路径加到环境变量里面去,比如我们动态库所在的路径为/home/test,我们就可 以这样添加,但是这种方法只在当前设置的窗口有效。

 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/hsj/file_bc/make_lib

我们加入环境后,运行 a.out,如下图所示:

 第三种方法:

修改 ubuntu 下的配置文件/etc/ld.so.conf,我们在这个配置文件里面加入动态库所在的位置,然后使用 命令 ldconfig 更新目录。

我们输入以下命令编辑/etc/ld.so.conf 文件,如下图所示:

文件内容为:

  

修改完文件保存退出,输入ldconfig 更新目录。运行测试如下图所示:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值