collect2.exe有什么作用?

all*_*ynm 8 c c++ linker gcc ld

当我检查由gcc -v -o proggy.exe proggy.o生成的代码时,我发现命令行扩展为一大堆库选项和库,所有这些都使用collect2.exe进行链接.ld.exe发生了什么?为什么我没有看到?有人可以向我解释collect2.exe的作用吗?

Mic*_*zek 9

collect2是一个用于生成构造函数表的实用程序__main(在开头调用自动生成的函数main)依赖于该实用程序.通常你没有看到它,因为它ld在文件系统上命名,而它又调用真正的ld(通常称为real-ld,尽管collect2会检查一些寻找它的地方)

  • 值得注意的是,现代 ELF 系统不需要那个集合(这当然是一个讨厌的黑客)。他们将 ELF 的 ctors 和 dtors 部分用于构造函数和析构函数。 (2认同)

Kir*_*sky 5

GCC 在几乎所有系统上都使用一个名为 collect2 的实用程序来安排在启动时调用各种初始化函数。[关联]