在Windows中WinMain
,
linux中的内容是什么?
或者它仍然是main
?
答案 0 :(得分:4)
Windows PE(可移植可执行文件)格式在标头中有一个标志,指出可执行文件是 console 还是窗口。 Windows将根据具体情况为应用程序分配控制台窗口。这也决定了入口点是main
还是WinMain
。
Linux ELF格式没有类似的标志。入口点始终为main
。 “控制台窗口”的概念在Linux中完全不同。
(请注意,上面简化了这个问题,因为您所讨论的入口点是用户代码启动的位置。编译器/链接器总是提供一些运行之前运行的运行时库启动代码调用您的用户入口点,这是真实入口点的位置。)
答案 1 :(得分:1)
完全取决于您正在使用的GUI库。 C 程序的入口点(在托管模式下)始终是 main (通常,它在C启动代码中配置事物然后调用main,这是 >您的代码开始。
某些环境提供了自己的main
版本,可以在调用代码之前进行设置。但是,Qt和KDE(作为两个示例)仍然使用main
,您需要自己设置环境。
答案 2 :(得分:0)
是的,它始终是主要的()。
Linux本身并不区分GUI和非GUI程序。它在可执行文件中没有标记,表示“这是一个控制台应用程序”或“这是一个窗口应用程序”。
严格来说,入口点不是main(),而是_start或者其他东西。但是,如果您要使用标准C库或其某些变体进行链接,那么它在C语言中的惯例往往是main()。