Gcc 静态库中对象文件的顺序

Gcc 静态库中对象文件的顺序,gcc,static-libraries,static-linking,unix-ar,Gcc,Static Libraries,Static Linking,Unix Ar,我知道当链接到多个静态库或对象文件时,顺序很重要(依赖库应该在它们的依赖项之前列出)。我想知道,在使用ar创建库文件时,是否应用了相同的规则,并且库中的顺序很重要,或者在相同的文件中,它没有任何区别。 我正在用一个复杂的依赖关系图打包200多个对象文件,并且 ar rcs mylib.a objs/*.o 比按正确顺序列出它们要容易得多 如果有区别的话,我使用的是gcc。库中的顺序很久以前就很重要了 它在任何更新15-20年的UNIX系统上都不再重要。从manranlib: An arc

我知道当链接到多个静态库或对象文件时,顺序很重要(依赖库应该在它们的依赖项之前列出)。我想知道,在使用
ar
创建库文件时,是否应用了相同的规则,并且库中的顺序很重要,或者在相同的
文件中,它没有任何区别。
我正在用一个复杂的依赖关系图打包200多个对象文件,并且

ar rcs mylib.a objs/*.o
比按正确顺序列出它们要容易得多


如果有区别的话,我使用的是
gcc

库中的顺序很久以前就很重要了

它在任何更新15-20年的UNIX系统上都不再重要。从
manranlib

   An archive with such an index speeds up linking to the library
   and allows routines in the library to call each other without
   regard to their placement in the archive.

大多数非古UNIX系统在生成存档库时,会自动生成<代码>·Sydef (上面包含索引),或者在链接时在内存中建立它。

“库内的命令过去很重要……”——C++静态对象初始化顺序不一定是真的。