使用scons-qt4插件时如何在Windows上隐藏控制台窗口?

时间:2011-02-24 09:50:13

标签: python qt scons

当我使用scons-qt4插件在Windows上构建时,我的应用程序总是打开一个控制台窗口,即使它有自己的窗口。使用QMake,您可以通过添加CONFIG + = console或类似的东西强制应用程序执行相同操作,但默认行为是禁止它。 QMake可以处理它 - 我也确定scons也可以。

到目前为止,我看到解决这个问题的唯一方法是在int main()周围使用#ifdef:

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

但那只是可恶的!

1 个答案:

答案 0 :(得分:0)

所以,似乎我的问题几乎已经回答了here。现在,应用于scons,这两行是为我做的:

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

另外,还要感谢[scons-users]邮件列表上的人们。特别是David Van Maren指出:

  

你可能会寻找你是否   链接到qtmain库。   最新的Qt文档只说   关于它:

     

--------------- qtmain Library

     

qtmain是一个帮助程序库   使开发人员能够编写   跨平台的main()函数   Windows和Symbian平台。   如果您不使用qmake或其他版本   像CMake这样的工具,那么你需要   链接到qtmain库。

     
     

它可能没有关系,但我   一旦我将它添加到链接,   伪造的控制台为我们的Qt消失了   gui申请。

这可能是另一种解决问题的方法,例如,使用GCC + MinGW以外的其他工具编译程序时。