linux下制作使用动静态库

linux下怎么制作使用静态库:

首先在makefile文件中制作静态库:

 

(1)首先生成*.o文件,输入gcc  nini.c -o nini.o -c      //-c表示只编译不链接

(2)利用ar命令生成静态库,输入ar -rclibnini.a nini.o   //.o文件归档为lib+库名称,后缀名是.a的文件,然后在linux环境下进行make命令

(3)制作后,需要发布.a文件和.h文件

使用的时候:

.a.h的文件要运行的文件都放在同一个文件夹里面。在.c文件里面包含库.h之后直接使用库函数。在linux环境下直接输入(例如:第一步gcc test.c -o test -lnini -L.

第二步./test

 

如果还有一个hello.c文件使用到了这个静态库

1)首先输入gcc hello.c -o hello ./libtest.a

2)输入./hello,验证生成的执行文件是否正确(是)

3)朋友们可以删除libtest.a文件,(在上一步运行成功之后不要再进行编译,即不要输入gcc hello.c -o hello ./libtest.a了)直接重新输入./hello,验证执行文件是否可以正常运行。(可以正常运行)

linux下怎么制作使用动态库:

首先在makefile文件中制作动态库:

 

编译的时候不能直接写gcc test.c -o test -laston -L.

三个解决方法:

1.将归档的lib+xxx.so文件放到/usr/lib/下,用cp命令即可

2.lib+xxx.so文件所在的目录导入到环境变量LD_LIBRARY_PATH.

即写入语句:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:xxxxxxxxxxx(上面的路径,通过pwd命令来寻找)

3.ldconfig

 

新命令:

ldd查看可执行文件运行时所依赖的动态库:(帮助我们解析这个函数用到了哪些函数库)

(1)ldd  可执行文件名

(2)readelf  -d   可执行文件名|grep  Shared

 

ldconfig 命令的用途:主要是在默认搜寻目录(/lib/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为/etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表.

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值