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++静态对象初始化顺序不一定是真的。