Compilation glibc中.o和.os objs的区别是什么

Compilation glibc中.o和.os objs的区别是什么,compilation,glibc,Compilation,Glibc,我正在研究glibc的源代码。我发现在编译glibc时,我得到了一些.o objs和一些.os objs。例如,有一个dl-load.o和一个dl-load.os。那么,它们之间有什么区别呢 谢谢大家!! 易明设置:glibc2.3.4 实验 首先,glibc/bld/close.{o,os}上的nm显示只有close.o定义了syscall\u错误。 然后,编写一个简单的程序来检测syscall\u error是否用于close() #包括 #包括 int main(){ 返回关闭(文件号(s

我正在研究glibc的源代码。我发现在编译glibc时,我得到了一些.o objs和一些.os objs。例如,有一个dl-load.o和一个dl-load.os。那么,它们之间有什么区别呢

谢谢大家!! 易明

设置:glibc2.3.4

实验

首先,glibc/bld/close.{o,os}上的nm显示只有
close.o
定义了
syscall\u错误。
然后,编写一个简单的程序来检测
syscall\u error
是否用于
close()

#包括
#包括
int main(){
返回关闭(文件号(stdin));
}
gcc-o s.out-静态-g a.c
gcc-o d.out-g a.c
结果

gdb
显示只有
close()
in
s.out
使用
syscall\u error
。因此.o文件用于
静态库
,而.os用于
动态库