【发布时间】:2011-02-18 20:09:15
【问题描述】:
当我检查 gcc -v -o proggy.exe proggy.o 生成的代码时,我发现命令行扩展为一大堆库选项和库,所有这些都使用 collect2.exe 链接。 ld.exe怎么了?为什么我看不到?有人可以向我解释一下 collect2.exe 的作用吗?
【问题讨论】:
当我检查 gcc -v -o proggy.exe proggy.o 生成的代码时,我发现命令行扩展为一大堆库选项和库,所有这些都使用 collect2.exe 链接。 ld.exe怎么了?为什么我看不到?有人可以向我解释一下 collect2.exe 的作用吗?
【问题讨论】:
collect2 是一个实用程序,用于生成__main(在main 开头调用的自动生成函数)所依赖的构造函数表。通常你看不到它,因为它在文件系统上被命名为ld,然后它又调用了真正的ld(通常称为real-ld,尽管collect2会检查许多地方来寻找它)
【讨论】:
GCC 在几乎所有系统上都使用一个名为 collect2 的实用程序来安排在启动时调用各种初始化函数。 [link]
【讨论】: