【C语言】静态链接库文件(.a)和object文件(.o)区别 您所在的位置:网站首页 显卡a和o有什么区别 【C语言】静态链接库文件(.a)和object文件(.o)区别

【C语言】静态链接库文件(.a)和object文件(.o)区别

2024-07-11 04:35| 来源: 网络整理| 查看: 265

推荐一款 求职面试、刷题学习 的神器:👉*点击跳转* ,快来看看吧!

静态链接库(.a)文件其实就是将多个object文件(.o)文件打包成一份文件。链接过程可以使用.a或者.o文件。测试一下,三个文件 main.c / fun1.c / fun2.c 分别是:

main.c:

#include "stdio.h" int fun1(int b); int fun2(int b); void main() { printf("%d,%d\r\n",fun1(12),fun2(12)); }

fun1.c:

int fun1(int b) { return b * 2; }

fun2.c:

int fun2(int b) { return b / 2; }

将每个源文件单独编译成.o文件,最后一起链接:

将 fun1.c 和 fun2.c 编译成.o文件,然后使用ar工具打包成静态链接库文件 fun.a ,最后链接 main.o 和 fun.a:

注意链接顺序,fun.a 需要在 main.o 后面才行,因为gcc在链接静态库时是往后找符号,不往前查找,所以写在前面不会被查找到。

推荐一款 求职面试、刷题学习 的神器:👉*点击跳转* ,快来看看吧!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有