【发布时间】:2011-10-08 01:20:01
【问题描述】:
在 Windows 中是WinMain,
在 linux 中是什么?
还是还是main?
【问题讨论】:
-
你使用的是什么 GUI 库?
-
这取决于库......以及您使用的 linux 构建/发行版。
标签: linux user-interface
在 Windows 中是WinMain,
在 linux 中是什么?
还是还是main?
【问题讨论】:
标签: linux user-interface
Windows PE(可移植可执行文件)格式在标头中有一个标志,表明可执行文件是 console 还是 windowed。根据具体情况,Windows 是否会为应用程序分配控制台窗口。这也决定了入口点是main还是WinMain。
Linux ELF 格式没有类似的标志。入口点始终是main。 “控制台窗口”的概念在 Linux 中完全不同。
(请注意,以上内容在一定程度上简化了问题,因为您所说的入口点是 user 代码开始的地方。编译器/链接器总是提供一些运行时库启动代码,这些代码在之前运行你的用户入口点被调用,这是真正的入口点。)
【讨论】:
是的,它总是 main()。
Linux 本身并不区分 GUI 程序和非 GUI 程序。它在可执行文件中没有标记“这是一个控制台应用程序”或“这是一个窗口应用程序”。
严格来说,入口点不是main(),而是_start什么的。但是,如果您要链接到标准 C 库或它的某些变体,则按照 C 语言的约定,它往往是 main()。
【讨论】: