C语言静态链接

阅读量: searchstar 2022-09-02 22:23:45
Categories: Tags:

相关: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.csub.c中的addsub函数。

生成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

运行

addsub已经被静态链接到main里了,所以直接运行即可:

./main

输出:

3, -1

参考

https://blog.csdn.net/m0_60073820/article/details/121385752