【发布时间】:2011-12-22 09:42:54
【问题描述】:
我注意到在 VC++ 控制台项目的默认链接器设置中,“入口点”为空。在我看到的生成的可执行文件上使用 dumpbin
entry point (004110FF) @ILT+250(_mainCRTStartup)
我还检查了项目属性的命令行选项,没有给出“/ENTRY”链接器选项。
那么链接器如何确定生成的可执行文件的入口点呢?我可以想到 2 个选项:
1) 有一些 "#pragma comment(linker, "/enty:_mainCRTStartup") 埋在 CRT 中 源代码。但是没找到。
2) 链接器本身从“/SUBSYSTEM:CONSOLE”选项中获取此信息。 所以 Visual Studio 中的选项只会覆盖 link.exe 所做的选择
你有什么想法吗?
【问题讨论】:
-
对不起,我自己找到了答案。只是分享我的发现:我的第二个猜测是正确的。链接器本身从给定的其他设置(例如 /subsystem:console)中获取此信息。见 MSDN link 所以只有当你想提供除 _mainCRTStartup 之外的入口点时,才需要项目属性中的选项。
-
您应该添加您的评论作为您自己问题的答案,然后在系统允许时接受它。
标签: visual-c++ linker msvcrt