Linux 如何在现有静态库开始时添加新的对象文件

Linux 如何在现有静态库开始时添加新的对象文件,linux,linker,static-libraries,archive,Linux,Linker,Static Libraries,Archive,我有一个现有的静态库libelab.a 我想在libelab.a的开始索引处添加两个对象文件obj1.o、obj2.o 我应该使用ar命令的哪些选项 手册页上说b是这个任务的修饰符,但我尝试将其用作:“ar rbvs libelab.a obj1.o obj2.o”,但给出了以下错误 ar:obj1.o:无法识别文件格式我意识到我使用了错误的语法 ar命令的手册页显示了以下关于修饰符b的内容: b Add new files before an existing member of t

我有一个现有的静态库libelab.a 我想在libelab.a的开始索引处添加两个对象文件obj1.o、obj2.o

我应该使用ar命令的哪些选项

手册页上说b是这个任务的修饰符,但我尝试将其用作:“ar rbvs libelab.a obj1.o obj2.o”,但给出了以下错误
ar:obj1.o:无法识别文件格式

我意识到我使用了错误的语法

ar命令的手册页显示了以下关于修饰符b的内容:

   b   Add new files before an existing member of the archive.  If you use the modifier b, the name of an existing archive member must be present as the relpos argument, before the archive specification.
所以要使用b选项,我必须在库中指定现有的对象文件名,在此之前我希望添加这两个新对象

例如,如果old.o是库中现有的对象文件,则以下语法是正确的:

ar rbvs old.o libelab.a obj1.o obj2.o
运行以下命令文件ojb1.o检查ojb1.o和libelab.a文件的文件格式。