当我检查由gcc -v -o proggy.exe proggy.o生成的代码时,我发现命令行扩展为一大堆库选项和库,所有这些都使用collect2.exe进行链接。 ld.exe发生了什么?为什么我没有看到?有人可以向我解释collect2.exe的作用吗?
答案 0 :(得分:9)
collect2
是一个实用程序,用于生成__main
(在main
开头调用的自动生成函数)依赖的构造函数表。通常你没有看到它,因为它在文件系统上被命名为ld
,而它又调用真正的ld(通常称为real-ld
,尽管collect2会检查一些寻找它的地方)< / p>
答案 1 :(得分:4)
GCC在几乎所有系统上使用名为collect2的实用程序来安排在启动时调用各种初始化函数。 [link]