【C语言】静态链接库文件(.a)和object文件(.o)区别 | 您所在的位置:网站首页 › 显卡a和o有什么区别 › 【C语言】静态链接库文件(.a)和object文件(.o)区别 |
推荐一款 求职面试、刷题学习 的神器:👉*点击跳转* ,快来看看吧! 静态链接库(.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 实验室设备网 版权所有 |