在 Debian(或任意 Linux)上使用 gcc 创建静态库(.a 文件),一般分为三步:编译为目标文件 → 用 ar 打包 → 使用静态库。
下面给你一个完整、常见的例子。
假设有两个源文件:
int add(int a, int b) {
return a + b;
}
int sub(int a, int b) {
return a - b;
}
#ifndef CALC_H
#define CALC_H
int add(int, int);
int sub(int, int);
#endif
gcc -c add.c -o add.o
gcc -c sub.c -o sub.o
或者一步:
gcc -c add.c sub.c
ar rcs libcalc.a add.o sub.o
说明:
r:插入或替换c:创建库(不警告)s:生成索引(等价于 ranlib)生成文件:
libcalc.a
✅ 静态库命名规范:libxxx.a
#include <stdio.h>
#include "calc.h"
int main() {
printf("add = %d\n", add(3, 4));
printf("sub = %d\n", sub(10, 4));
return 0;
}
gcc main.c -L. -lcalc -o main
参数说明:
-L.:在当前目录找库-lcalc:链接 libcalc.aldd main
如果 没有 显示 libcalc,说明是静态链接成功。
ar t libcalc.a
nm libcalc.a
gcc -static main.c -L. -lcalc -o main
如果你是:
可以告诉我,我可以给你对应版本的做法。