Object 什么';对象文件和静态库(归档文件)之间的区别是什么?

Object 什么';对象文件和静态库(归档文件)之间的区别是什么?,object,archive,Object,Archive,似乎可以从对象文件生成存档文件: ar rvs libprofile.a profile.o 对象文件和归档文件之间有什么区别 在我看来,两者都可以直接与gcc一起使用,例如: gcc*.c profile.o或gcc*.c libprofile.a 有什么区别?静态库是一个或多个对象文件的集合,带有允许快速搜索的索引。编译器处理它们的方式有一些细微的差别。使用对象文件,您可以如下链接: gcc f1.o f2.o -o myexe 使用库,您还可以执行以下操作: gcc f1.o libf

似乎可以从对象文件生成存档文件:

ar rvs libprofile.a profile.o
对象文件和归档文件之间有什么区别

在我看来,两者都可以直接与gcc一起使用,例如:

gcc*.c profile.o
gcc*.c libprofile.a


有什么区别?

静态库是一个或多个对象文件的集合,带有允许快速搜索的索引。编译器处理它们的方式有一些细微的差别。使用对象文件,您可以如下链接:

gcc f1.o f2.o -o myexe
使用库,您还可以执行以下操作:

gcc f1.o libf2.a -o myexe
或者您可以使用速记:

gcc d1.o -lf2 -L. -o myexe

此外,gcc将始终链接.o文件,但它只会搜索库并在仍有未定义名称需要解析时从库中链接。

Butterworth,但
gcc
可以交替使用它们,或者至少在使用.o的地方可以使用。a也可以使用,对吗?是的,但正如我指出的,用法可能略有不同。可能重复