Qt程式 與 CMD視窗彈出的控制

來源:互聯網
上載者:User
console 當希望程式運行時同時出現 cmd 視窗,我們只需要在 pro 檔案內添加(這是一個常規用法): CONFIG += console 即可。 一般來說,我們都希望 debug 時出現 cmd 視窗,而 release 不出現

 

console

 

當希望程式運行時同時出現 cmd 視窗,我們只需要在 pro 檔案內添加(這是一個常規用法):

CONFIG += console  

即可。

一般來說,我們都希望 debug 時出現 cmd 視窗,而 release 不出現 cmd 視窗,這也好辦: 網路安全
2009FLY文摘,正正部落格 WWW.2009FLY.COM

 

win32:CONFIG(debug, debug|release):CONFIG += console  
  • 這句話意思是,我們希望只在win32下的debug模式時啟用。
  • CONFIG(debug, debug|release)的含義可參考 http://hi.baidu.com/cyclone/blog/item/d77a8618608448b94bedbc0b.html 內容來自www.2009fly.com
    2009FLY文摘,正正部落格 WWW.2009FLY.COM

qtestlib

其實不止前面的選項會出現 cmd 視窗,當我們啟用 qtestlib 模組時,Qt程式也會彈出控制台視窗

  WEB技術 Ajax、RIA 2009FLY文摘,正正部落格 WWW.2009FLY.COM

CONFIG += qtestlib 網路安全  2009FLY文摘,正正部落格 WWW.2009FLY.COM 

QT += testlib 遊戲編程   2009FLY文摘,正正部落格 WWW.2009FLY.COM 
  • 這兩種寫法的淵源我不太清楚,前面是Qt的example中的用法,後者是Qt的manual給出的說明。反正目前兩個都能用。

這種情況下彈出控制台其實比較好理解,畢竟 qtestlib 是用來測試的,測試時彈出控制台來輸出一些中間結果,正是大家所期望的。

可是如果我們非要在一個GUI程式想使用qttestlib中的東西,而又不想要cmd視窗,怎麼辦?

一種消除cmd的辦法(注意:在Qt
Windows下連結子系統與入口函數(終結版) 一文中給出更好的辦法)

  • 我不清楚有沒有其他更簡單的辦法,比如在pro檔案內加個選項(至少CONFIG-=console是不行的)。

  • 我們知道windows下,連結時有多個子系統可選,最常用的有兩個: console 和 windows。前者出控制台,後者不會。
  • 既然啟用 testlib 後出現控制台,也就是此時是 console 子系統,我們只要在makefile中將其改為 windows ,問題不就解決了?

說做就做,下面是Mingw和VS2008兩種環境下的Makefile修改方式:

  • 如果用的 mingw,那麼

將其中的:

-Wl,-subsystem,console 網路安全  2009FLY文摘,正正部落格 WWW.2009FLY.COM 

修改為 資料技術 Oracle、DBMaker、DB2 2009FLY文摘,正正部落格 WWW.2009FLY.COM

-Wl,-subsystem,windows  

重新編譯即可

  • 如果用的 VS2008等編譯器,那麼 遊戲編程
    2009FLY文摘,正正部落格 WWW.2009FLY.COM

將其中的: 作業系統核心 2009FLY文摘,正正部落格 WWW.2009FLY.COM

/SUBSYSTEM:CONSOLE 移動開發,Android、iPhone  2009FLY文摘,正正部落格 WWW.2009FLY.COM 

修改為

/SUBSYSTEM:WINDOWS /entry:mainCRTStartup 2009FLY文摘,正正部落格 WWW.2009FLY.COM 

即可

對連結子系統的一個簡單討論,可以看看這個: http://hi.baidu.com/cyclone/blog/item/96624a90fb4ca081a977a4db.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.