静态库的制作 in C++【Linux项目学习笔记】

本文介绍了库文件的概念,包括静态库和动态库的差异。静态库在程序链接时被整合,而动态库在运行时加载。制作静态库涉及gcc编译获取.o文件,然后使用ar工具打包。以Linux平台为例,静态库遵循libxxxx.a的命名规则,通过arrcs命令创建。文章提供了一个实例,演示如何将多个.c文件打包成静态库MyLib.a。
摘要由CSDN通过智能技术生成

静态库的制作

🍅关于库的概述

库文件是一类文件,可简单将库文件看作一种代码仓库,它提供给使用者一些可以直接拿来用的变量,类或者函数

库是一种特殊的程序,和一般程序区别不大,只是库不能单独运行

库文件有两种:静态库和动态库

  • 静态库在程序的链接阶段被复制到了程序中
  • 动态库在链接阶段没有被复制到程序中,而是程序在运行时有系统动态加载到内存中供程序调用

库的好处

  • 代码保密(别人用你的库,但是不会了解你的源码)
  • 方便部署和分发

🍅库的制作

命名规则
  • Linux : libxxxx.a
    • lib : 前缀(固定)
    • xxxx : 库的名字
    • .a :后缀(固定)

💡静态库的制作

  • 先由gcc获得.o文件,即是gcc -c 文件
  • 再将.o文件打包,使用 ar 工具(archive)
    • ar rcs libxxx.a xxx.o xxx.oar rcs 库的名字 构成库所需的.o文件
      • r ---- 将文件插入备存文件中
      • c ---- 建立备存文件
      • s——索引
例子

比如在文件A下有很多.c结尾的文件,如add.c div.c head.h main.c mult.c sub.c ,现在要把它们打包成一个静态库供他人使用

则在终端下进入到该文件目录下(即目录下都是刚刚的.c结尾的文件),输入gcc -c add.c div.c mult.c sub.c,便可获得.o文件(注意这里头文件不需要生成.o文件,只需要.c就好了)

随后输入ar rcs MyLib.a add.o sub.o mult.o div.o,得到的MyLib.a便是我们的静态库了加粗样式

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值