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  文件

posted on   廿陆  阅读(25)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示