2011-02-24 92 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之外的其他工具編譯程序時。

相關問題