2011-02-24 78 views
0

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

我看的更远解决这个问题的唯一方法是使用#ifdef来围绕INT主要():

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

但是,这只是可恶!

回答

0

所以,看来,我的问题几乎已经回答了here。现在,适用于使用SCons,这两条线路为我做:

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

而且,那种感谢[scons的用户]邮件列表上的人。尤其是,David Van Maren指出:

您可能会看看您是否是 链接到qtmain库。 最新Qt文档只是说 这一下:

---------------的qtmain图书馆

qtmain是一个辅助库, 使开发人员能够编写在 Windows和Symbian平台上的 跨平台main()函数。 如果您不使用qmake或其他构建 工具(如CMake),则需要连接到qtmain库的 链接。


它可能不相关,但我认为 ,一旦我把它添加到链接中, 假控制台消失为我们的Qt GUI应用程序。

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

相关问题