Как скрыть окно консоли в Windows при использовании плагина scons-qt4? - PullRequest
0 голосов
/ 24 февраля 2011

Когда я работаю на Windows с плагином scons-qt4, мое приложение всегда открывает окно консоли, даже если оно имеет свои собственные окна. С QMake вы можете заставить приложение делать то же самое, добавив CONFIG + = console или что-то подобное, но поведение по умолчанию - это подавление. QMake может справиться с этим - я уверен, что и scons тоже могут.

Единственный способ решения этой проблемы, который я пока вижу, состоит в том, чтобы использовать #ifdef вокруг int main ():

#ifdef WIN32
int WinMain (int _argc, char **_argv)
#else
int main (int _argc, char **_argv)
#endif

Но это просто отвратительно!

1 Ответ

0 голосов
/ 28 февраля 2011

Итак, похоже, на мой вопрос почти уже ответили здесь .Теперь, применительно к scons, эти две строки сделали это для меня:

if (env ['PLATFORM'] == 'win32'):
    env.Append (LINKFLAGS = ['-Wl,-subsystem,windows'])

Также, спасибо всем, кто был в списке рассылки [scons-users].В частности, Дэвид Ван Марен отметил, что:

Возможно, вы поищите ссылки на библиотеку qtmain.Последняя документация Qt только говорит об этом:

--------------- Библиотека qtmain

qtmain является вспомогательной библиотекой, которая позволяет разработчикунаписать кросс-платформенную функцию main () в Windows и на платформе Symbian.Если вы не используете qmake или другие инструменты сборки, такие как CMake, то вам нужно создать ссылку на библиотеку qtmain.


Возможно, это не связано, но я думаю , что однажды ядобавив его по ссылке, фиктивная консоль исчезла для наших приложений Qt GUI.

Это может быть еще один способ решения проблемы, например, когда программа компилируется с помощью других инструментов, кроме GCC + MinGW.

...