去除MinGW下编译的wxWidgets程序的控制台窗口

本文详细介绍了在使用wxWidgets编写程序时遇到的启动速度慢和产生多余cmd窗口的问题,通过分析原因,发现是由于编译时使用了控制台模式而非GUI模式导致。解决方案是在编译命令中加入-Wl,--subsystem,windows参数,以避免生成cmd窗口,并提高程序启动速度。

写的wxWidgets程序在Windows下启动很慢,并且会显示一个多余的cmd窗口。使用的是MinGW环境编译,编译的命令是:

g++ -Wl,--enable-auto-import helloworld.cpp `./wx-config.exe --libs --cxxflags` -o helloworld.exe


起初尝试使用FreeConsole()函数来去掉控制台窗口,但仍不能解决启动慢的问题,而且程序启动时还是会产生cmd窗口,窗体载入后才执行到FreeConsole()函数去掉控制台窗口。因此这个办法不好。


实际的问题原因是:编译时使用的是控制台模式,应该使用GUI模式。解决的方法是向链接器ld传入“--subsystem,windows”参数,这需要用-Wl让gcc把这个参数传给ld。


因此,编译命令中加入如下参数,就不会产生cmd窗口了,程序启动时也不会很慢了:

-Wl,--subsystem,windows
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值