C语言静态链接
相关:{% post_link C/'C语言动态链接库' %}
场景
add.c
:
int add(int a, int b) {
return a + b;
}
sub.c
:
int sub(int a, int b) {
return a - b;
}
main.c
:
#include <stdio.h>
int add(int, int);
int sub(int, int);
int main() {
printf("%d, %d\n", add(1, 2), sub(1, 2));
return 0;
}
利用静态链接在main.c
中使用add.c
和sub.c
中的add
和sub
函数。
生成libmath.a
# add.o
gcc -c add.c
# sub.o
gcc -c sub.c
# libmath.a
ar -rc libmath.a add.o sub.o
生成main
gcc -c main.c
gcc main.o libmath.a -o main
或者一步到位:
gcc main.c libmath.a -o main
运行
add
和sub
已经被静态链接到main
里了,所以直接运行即可:
./main
输出:
3, -1