io进线程-3库的制作

一、静态库

1.生成二进制文件
    gcc -c hello.c -o hello.o       //gcc -c xxx.c -o xxx.o
2.制作静态库文件(把.o文件转换成.a文件)
    ar crs libmykun.a hello.o    //生成libmykun.a这个静态库文件
                                        //ar crs libyyy.a xxx.o   
                                        // libyyy.a  xxx为库名
3.编译时链接
    gcc main.c -L. -lmykun        //-L表示指定库路径,-l表示指定具体的库
                                        //gcc main.c -L. -lyyy

二、动态库

1.生成地址无关二进制文件
    gcc -fPIC -c hello.c
2.制作动态库文件
    gcc -shared -o libkunkun.so hello.o        //  libxxx.so
3.编译时链接
    gcc main.c -L. -lkunkun        //-L表示指定库路径(指定库路径在当前路径),
                                        //-l表示指定具体的库,后接名字,不加lib和.so
4.  ./a.out运行
                                    运行a.out会报错,没有将库路径加载到默认路径上 
注:动态库程序运行时需要去默认路径加载库
1.把动态库文件拷贝到/lib或者/usr/lib目录下(方法1,不推荐)
或
2.配置动态库搜索文件(方法2,推荐)
    sudo vi /etc/ld.so.conf.d/my.conf    //不能修改就touch然后sudo shmod
    把动态库路径存放进文件                //pwd库的当前路径,复制进my.conf
    sudo ldconfig /etc/ld.so.conf.d/my.conf

eg:

静态库

初始有lqueue.c 、lqueue.h、main.c

在这里插入图片描述
在这里插入图片描述

动态库

忽略写错的地方
有的地方写错了,忽略

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值