Unix 什么';这两个ar命令的区别是什么
这两者之间的区别是什么:Unix 什么';这两个ar命令的区别是什么,unix,static-libraries,unix-ar,Unix,Static Libraries,Unix Ar,这两者之间的区别是什么: ar -x liba.a ar -x libb.a ar rcs libab.a *.o 及 它们真的在执行相同的任务吗?除非您使用的是我不知道的ar版本,否则这两个命令序列的效果是完全不同的,尽管它们最终都创建了一个文件libab.a 第一个序列将liba.a中的所有(对象)文件提取到当前目录中,然后将libb.a中的所有文件提取到当前目录中(任何名称冲突都意味着libb.a中的文件将继续存在),然后将当前目录中的所有对象文件提取到当前目录中(可能包括既不在liba
ar -x liba.a
ar -x libb.a
ar rcs libab.a *.o
及
它们真的在执行相同的任务吗?除非您使用的是我不知道的
ar
版本,否则这两个命令序列的效果是完全不同的,尽管它们最终都创建了一个文件libab.a
第一个序列将liba.a
中的所有(对象)文件提取到当前目录中,然后将libb.a
中的所有文件提取到当前目录中(任何名称冲突都意味着libb.a
中的文件将继续存在),然后将当前目录中的所有对象文件提取到当前目录中(可能包括既不在liba.a
中也不在libb.a
中的文件)存档在libab.a
中
第二个序列创建了一个自身包含两个文件的归档文件:liba.a
和libb.a
。这是合法可行的,但生成的文件在链接程序时没有用处。链接器不会查看嵌套的归档文件;它只会发现没有提供任何符号的对象文件(因为liba.a
和libb.a
都不是对象文件),所以该库实际上是未使用的,尽管您在尝试使用它时不会出现错误
第一个命令序列可能比第二个命令序列更有用。您是指两条“ar rcs”行之间的差异吗?如果是,您是指“.a”而不是“.o”?是,这两个命令的作用相同。否?使用-x提取和使用all.o创建静态库或直接使用.a创建库之间有什么区别?否,它们的作用不完全相同。请尝试“ar rcs libab1.a*.o”和“ar rcs libab2.a liba.a libb.a”,然后比较每个命令的内容(ar tv.a)。另请参见:
ar rcs libab.a liba.a libb.a