温馨提示×

ubuntu gcc静态库如何生成

小樊
47
2026-09-12 23:18:01
栏目: 智能运维

在 Ubuntu 下使用 gcc 生成静态库(.a 文件),一般步骤如下:


一、准备源文件

假设有两个源文件:

// add.c
int add(int a, int b) {
    return a + b;
}
// sub.c
int sub(int a, int b) {
    return a - b;
}

二、编译为目标文件(.o)

使用 -c 参数只编译不链接:

gcc -c add.c -o add.o
gcc -c sub.c -o sub.o

三、使用 ar 生成静态库

静态库使用 ar(archive)工具创建:

ar rcs libmymath.a add.o sub.o

说明:

  • r:插入或替换目标文件
  • c:创建库(不警告)
  • s:生成索引(加速链接)

生成文件:libmymath.a


四、使用静态库

写一个测试程序:

// main.c
#include <stdio.h>

int add(int, int);
int sub(int, int);

int main() {
    printf("3+2=%d\n", add(3, 2));
    printf("3-2=%d\n", sub(3, 2));
    return 0;
}

编译并链接静态库:

gcc main.c -L. -lmymath -o main

参数说明:

  • -L.:在当前目录找库
  • -lmymath:链接 libmymath.a

运行:

./main

五、查看静态库内容

ar t libmymath.a

或查看符号:

nm libmymath.a

六、常见说明

  • 静态库后缀:.a
  • 命名规则:libxxx.a
  • 静态库在编译时会被直接打包进可执行文件

如果你需要 Makefile 写法 或 与动态库对比,也可以告诉我。

0 踩