构建C语言静态库文件并调用的实战案例和详细步骤实现

准备源文件

calc.h

  • 定义加法:int add(int a, int b);
  • 定义减法:int sub(int a, int b);
#ifndef __CALC_H_
#define __CALC_H_

int add(int a, int b);
int sub(int a, int b);

#endif // __CALC_H_

calc.c

  • 简单的实现加法
  • 简单的实现减法
#include "calc.h"

int add(int a, int b){
    return a + b;
}

int sub(int a, int b){
    return a - b;
}

show.h

#ifndef __SHOW_H_
#define __SHOW_H_

void show(int a, char* op, int b, int res);

#endif // __SHOW_H_

show.c

#include <stdio.h>
#include "show.h"

void show(int a, char* op, int b, int res){
    printf("%d %s %d = %d\n", a, op, b, res);
}
编译C源文件
gcc -c calc.c
gcc -c show.c
构建静态库
ar -r libmath.a calc.o show.o
使用静态库文件

main.c

#include <stdio.h>
#include "calc.h"
#include "show.h"


int main(){
    int a = 11;
    int b = 22;
    int res = add(a, b);
    show(a, "+", b, res);

    return 0;
}

编译并运行文件,此时把静态库文件也带上:

gcc main.c libmath.a -o main && ./main

输出结果如下:

11 + 22 = 33

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-11 23:48:08       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-11 23:48:08       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-11 23:48:08       82 阅读
  4. Python语言-面向对象

    2024-05-11 23:48:08       91 阅读

热门阅读

  1. 【重学C语言】十三、字符串

    2024-05-11 23:48:08       32 阅读
  2. js原生三种弹框

    2024-05-11 23:48:08       34 阅读
  3. 详解Python 中可视化数据分析工作流程

    2024-05-11 23:48:08       28 阅读
  4. 天童教育:孩子是难以改变的,除非他感觉到爱

    2024-05-11 23:48:08       27 阅读
  5. 【MySQL】表的增删改查(基础)

    2024-05-11 23:48:08       26 阅读
  6. matlab二次插值函数 interp2

    2024-05-11 23:48:08       34 阅读