linux 静态库的制作与使用
什么是库?
库文件是计算机上的一类文件,可以简单的把库文件看成一种代码仓库,它提供给使用者一些可以直接拿来用的变量、函数或类
库是特殊的一种程序,编写库的程序和编写一般的程序区别不大,只是库不能单独运行
预处理---编译---汇编---链接
库文件有两种,静态库和动态库( 共享库),区别是:静态库在程序的链接阶段被复制到了程序中;
动态库在链接阶段没有被复制到程序中,而是程序在运行时由系统动态加载到内存中供程序调用
库的好处: 1.代码保密 2.方便部署和分发
命名规则:lib:library缩写
**Linux: libxxx.a
lib: 前缀(固定)
xxx: 库的名字,自起
.a: 后缀(固定)
**Windows: libxxx.lib
静态库的制作:
一、gcc 获得 .o 文件
二、将 .o 文件打包 使用 ar 工具( archive:档案 归档)
ar rcs libxxx.a xxx.o xxx.o
r - 将文件插入备存文件中
c - 简历备存文件
s - 索引
案例:
1.建立add.h文件
#ifndef _ADD_H #define _ADD_H int add(int a, int b); #endif
2.建立add.c文件
#include "add.h" int add(int a, int b) { return a + b }
3.main.c文件
#include<stdio.h> #include "add.h" int main() { int a = 10; int b = 20; printf("a = %d,b = %d\n",a,b); printf("a + b = %d ",add(a,b)); printf("hello\t\n"); return 0; }
指令1:
gcc -c add.c//生成add.o文件
指令2:
ar rcs libxxx.a add.o//生成名为xxx的静态库文件
指令3:
gcc main.c -L. -lxxx -o main//生成可执行文件(xxx前为小写L)
头文件会增加到预处理中 不需要 .o 文件 main文件为测试文件 也不需要 生成 .o 文件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)