有人告訴我幾次,那個-mwindows
和-mconsole
命令行開關的mingw實際上隻影響EXE頭中的一個位,或者其他的不太多。但是,這似乎並不正確。如果我嘗試在我的一個項目中使用-mconsole
,我得到以下錯誤的聯動:Mingw -mconsole選項導致未定義引用的MS GUI功能上的鏈接錯誤
../../build/objs/t-win32-ep128-xep128--gui.o:gui.c:(.text+0xb3): undefined reference to `[email protected]'
../../build/objs/t-win32-ep128-xep128--gui.o:gui.c:(.text+0xc7): undefined reference to `[email protected]'
OK,我認爲,GUI相關的選項問題不能與-mconsole使用。然而,這對我來說是一個陷阱,因爲我需要編寫一個使用GetOpenFileName()
等函數的應用程序,但仍然需要控制檯,因爲我使用printf()
等編寫了調試消息。此外,它似乎與「常識」意見衝突,-mconsole
/-mwindows
開關隻影響單個EXE頭元素,因此Windows將知道爲應用程序分配控制檯還是不分配控制檯。是的,我可以自己分配一個控制檯,但這很難看,因爲我想使用該程序啓動的控制檯。在這種情況下可以解決什麼問題?謝謝。
你做錯了別的。我有一個運行良好的控制檯程序,在這裏創建一個窗口和各種控件,並運行消息循環。 –
@eryksun,因爲這需要用戶做一些不尋常的事情,這很麻煩。或者,如果您需要「混合」應用程序:堅持使用「控制檯」子系統,如果啓動例如沒有命令行參數,「detach」你自己('CreateProcess()'你自己的可執行文件'DETACHED_PROCESS')。這隻有「控制檯窗口閃光燈」問題;) –
實際上,如果有-mwindows選項,則連接是否正常。如果我將其更改爲-mconsole,我遇到了未定義引用的問題!我試圖包括-luser32,但沒有區別。 –