Какова точка входа программы с графическим интерфейсом в Linux? - PullRequest
3 голосов
/ 08 октября 2011

В окнах это WinMain,

что это в Linux?

Или это все еще main?

Ответы [ 3 ]

4 голосов
/ 08 октября 2011

Формат Windows PE (Portable Executable) в заголовке имеет флаг, указывающий, является ли исполняемый файл console или windowed .В зависимости от того, что это, Windows будет выделять консольное окно для приложения, или нет.Это также определяет, является ли точка входа main или WinMain.

. Формат Linux ELF не имеет подобного флага.Точка входа всегда main.Понятие «консольного окна» в Linux совершенно иное.

(Обратите внимание, что вышесказанное несколько упрощает проблему, поскольку точка входа, о которой вы говорите, начинается с кода user Компилятор / компоновщик всегда предоставляет некоторый код запуска библиотеки времени выполнения, который запускается до вызова вашей пользовательской точки входа, где находится настоящая точка входа.)

1 голос
/ 08 октября 2011

Это полностью зависит от библиотеки GUI, которую вы используете.Точка входа для программы на C (в размещенном режиме) всегда main (обычно это код запуска C, который настраивает вещи, а затем вызывает main, где ваш код запускается.

В некоторых средах предусмотрена собственная версия main для настройки перед вызовом кода. Однако Qt и KDE (какдва примера) по-прежнему использует main, и вы должны сами настроить среду.

0 голосов
/ 08 октября 2011

Да, это всегда main ().

Linux, по сути, не различает программы с графическим интерфейсом и не-GUI.В исполняемом файле нет флага, говорящего «это консольное приложение» или «это оконное приложение».

Строго говоря, точка входа НЕ main (), а _start или что-то в этом роде.,Однако, если вы связываетесь со стандартной библиотекой C или каким-либо ее вариантом, она обычно является main () по соглашению на языке C.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...