解决就好了,我多说几句,楼主的这个问题,与Qt没关系。进一步说,与c++ 的关系都不大。
因为 windows 的链接时分 windows 和 console 两个子系统。不管是用的c、c++、fortran、还是其他编译型语言,都是在链接时决定哪个子系统的。
比如一个简单的helloworld.cpp程序
以下任何一条命令
- g++ helloworld.cpp
- g++ helloworld.cpp -mconsole
- g++ helloworld.cpp -Wl,subsystem,console
生成的都是控制台程序
而
- g++ helloworld.cpp -mwindows
- g++ helloworld.cpp -Wl,subsystem,windows
生成的是gui程序
同样,你用微软的vs系列时cl.exe,同样分这两种情况
- cl helloworld.cpp
- cl helloworld.cpp /subsystem:console
- cl helloworld.cpp /subsystem:windows
这两个的选择应该是windows下编程的基本功吧,
带界面的程序如果链接 console 子系统,将每次伴随着界面都会弹出一个黑色的控制台窗口
控制台程序如果链接 windows 子系统,由于根本不生成控制台窗口,显然也不存在控制台输出了
至于Qt中 CONFIG中的选项,只不过提供了一个选择哪个子系统的机会。由于Qt是图形界面库,默认告诉链接器链接windows子系统就很正常了。当然,这种问题只在ms windows操作系统存在