gpt4 book ai didi

linker - 我需要 "ranlib"/"ar -s"进行静态链接吗?

转载 作者:行者123 更新时间:2023-12-02 07:27:13 24 4
gpt4 key购买 nike

我没有找到任何正确的信息是否以及为什么需要 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 的。

最佳答案

如果您使用的是 POSIX 兼容系统,。根据specification :

Whenever the ar utility is used to create or update the contents of such an archive, the symbol table is rebuilt.

ar -sranlib 的唯一用途是在使用 strip 命令剥离符号表后重建符号表。

关于linker - 我需要 "ranlib"/"ar -s"进行静态链接吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25296117/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com