我没有找到任何正确的信息,如果我为什么需要用于静态链接的ranlib / ar -s。
假设我有一个由多个模块组成的应用程序。每个模块都有自己的代码文件……
如果您使用POSIX兼容系统, 没有 。根据 规格 :
只要使用ar实用程序创建或更新此类存档的内容,就会重建符号表。
唯一的用途 ar -s 要么 ranlib 是用它去除后重建符号表 strip 命令。
ar -s
ranlib
strip
从“构建和使用静态和共享”C“库”: ( http://docencia.ac.upc.edu/FIB/USO/Bibliografia/unix-c-libraries.html )
“在创建或修改存档之后,需要对其进行索引。编译器稍后会使用该索引来加速库内的符号查找,并确保库中符号的顺序获胜在编译期间很重要(当我们深入研究本教程结尾处的链接过程时,这将更好理解。)