学习笔记:Linux开发(C++):静态库

01.什么是库

  • 库文件是计算机上的一类文件,可以简单的把库看成一种代码仓库(二进制),它提供给使用者一些可以直接拿过来的变量、函数或类
  • 库是一种特殊的程序,编写库的程序和编写一般的程序区别不大,只是库不可以单独运行,因为库是要提供给别人使用的
  • 库文件有两种:一种是静态库,一种是动态库(共享库)。其区别:静态库在程序的链接阶段被复制到了程序中(预处理->编译->汇编->链接);动态库在程序运行的时候由系统动态的加载到内存当中,以供程序调用
  • 库的优点:1.代码具有保密性 2.方便部署和发布

02.静态库的制作

命名规则:

Linux:libxxx.a

        lib:固定的前缀 是library的缩写

        xxx:库的名字,自己起的

        .a:固定后缀

静态库的制作过程:

1. gcc获取.o文件(头文件不需要进行.o编辑,在预编译的时候会自动包含到源文件里,)

2. 将.o文件进行打包,使用ar(archive)工具

        ar rcs libxxx.a xxx.o xxx.o.......

                r:将文件插入到储备文件中

                c:建立备存文件

                s:索引 

 例子:有以下几个.c文件组成运算代码 :头文件head.h、主函数main.c、add.c、div.c、mult.c、sub.c

首先用gcc编译成.o文件( main是一个测试的代码 所以不需要进行编译)

<1>gcc  -c add.c div.c mult.c sub.c  

<2>ar rcs libcalc.a add.o div.o mult.o sub.o

这样简单的静态算数库就制作好了 此时文件中会有一个libcalc.a这个文件

03. 静态库的使用

为了方便理解,重新建立一个文件夹命名为library,具体文件内容如图所示

我们再使用静态库的时候,不仅仅要把库给别人,同时还要把库所依赖的头文件也要分发给别人

gcc main.c -o app -I ./include/ -l calc -L ./lib 

将主函数生成一个名为app的可执行程序,其中红色标注的大写I(i) 代表着在利用静态库的时候要从include目录下寻找头文件,小写L代表的是要用到calc这个库,大写L代表的是在lib目录寻找这个库文件,只有这样才可以完成编译,如果嫌麻烦可以直接把文件都放在同一个目录下,这样不需要app后面的命令,但如果这样做,会让文件没有条理性,找文件的时候也比较复杂

总而言之,静态库的使用还是非常简单的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值