kay*_*kay 6 linker gnu unix-ar binutils
如果我需要ranlib/ ar -s为静态链接,我没有找到任何正确的信息.
假设我有一个由多个模块组成的应用程序.每个模块的代码文件都在自己的文件夹中,目标文件在自己的文件夹中创建:module1/%.c ? bin/module1/%.o.对于每个模块,我创建一个.a文件:ar -rc bin/module1.a bin/module1/….o.整个程序编译gcc bin/module1.a … moduleN.a -o bin/app.
在这种情况下,为.a文件创建索引有什么作用?即使我没有为文件添加索引,编译和程序也能正常工作.a.但是我发现ranlib在最后一个目标文件之后调用的每个示例都被添加到存档中.
问题不是Linux/Mac/Windows特定的.
来自“构建和使用静态和共享“C”库”:(http://docencia.ac.upc.edu/FIB/USO/Bibliografia/unix-c-libraries.html)
“创建或修改存档后,需要对其进行索引。编译器稍后使用该索引来加速库内的符号查找,并确保库中符号的顺序获胜在编译过程中并不重要(当我们在本教程末尾更深入地了解链接过程时,这会更好地理解)。”
| 归档时间: |
|
| 查看次数: |
2565 次 |
| 最近记录: |