xiv*_*r77 12 c gcc static-libraries unix-ar static-linking
我确实阅读了man文件,但它没有帮助."rcs"似乎是传递给ar的最受欢迎的选项,但其含义并不是那么清楚.
所以"c"意味着创建一个新的档案,但为什么要使用"r"?哪个似乎代表"替换"?"s"选项对输出的作用是什么?
Tho*_*key 14
阅读手册页(对于ar)是一个好的开始:
C
创建存档.当您请求更新时,如果指定的存档不存在,则始终会创建该存档.但是,除非您事先通过使用此修饰符指定您希望创建它,否则会发出警告.
[R
将文件成员 ...插入存档(替换).此操作与q的不同之处在于,如果其名称与添加的名称相匹配,则会删除任何以前存在的成员.
小号
将对象文件索引写入存档,或更新现有索引,即使存档没有其他更改.您可以将此修饰符标志用于任何操作,也可以单独使用.
ar s在存档上运行" "相当于在其上运行ranlib.
与POSIX相比,您可能会注意到一个区别:GNU ar使" - "前缀选项本身可选.
存档可以包含除对象文件之外的其他项目(尽管这不常用).包含对象文件的存档需要额外的维护(例如,完成ranlib)以使链接器可以使用它们.
根据该原理在POSIX AR,该-s选项起源于BSD(System V的那样自动将此).然而,独立运行ranlib是普遍的做法(-s很少使用).有趣的是,POSIX没有ranlib,并且最终-s选项将替换为ranlib在各种平台上运行的大量makefile.
hex*_*cle 10
阅读手册以获得ar帮助,但我会更详细地解释它。
ar -rcs是您在使用 aMakefile编译库时最有可能使用的命令。
r意味着如果库已经存在,用新文件替换库中的旧文件。
c表示如果库不存在则创建库。
s可以看出是指对库进行“排序”(创建排序索引),以便对其进行索引并更快地访问库中的函数。因此,rcs可以看出的意思replace, create, sort。