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.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

posted @ 2024-09-28 14:05  寻找繁星  阅读(0)  评论(0编辑  收藏  举报