在 C 中使用 gtk 编写 GUI 程序时如何摆脱控制台?
Posted
技术标签:
【中文标题】在 C 中使用 gtk 编写 GUI 程序时如何摆脱控制台?【英文标题】:How do I get rid of the console when writing GUI programs with gtk in C? 【发布时间】:2011-02-14 16:47:31 【问题描述】:我正在学习教程:
http://zetcode.com/tutorials/gtktutorial/firstprograms/
它可以工作,但是每次我双击可执行文件时,都会有一个我不想要的控制台。
如何摆脱那个控制台?
平台:windows XP。
顺便说一句,右键单击图标时我也遇到了这个问题:
GLib-WARNING **: g_main_context_check() called recursively from within a source's check() or prepare() member.
有没有人熟悉这个?
【问题讨论】:
【参考方案1】:链接时,使用参数 -mwindows
gcc -o simple simple.c `pkg-config --libs --cflags gtk+-2.0` -mwindows
【讨论】:
谢谢!让我试试它是否有效。GLib-WARNING
的问题呢?
似乎它不适用于 Windows。虽然我已经安装了 gcc 环境。
不知道;因为这是一个警告,我可能会忽略它。
但是只要我不取消右击图标就会有成千上万个相同的警告。
它报告:gcc:
pkg-config:没有这样的文件或目录,
gcc:gtk+-2.0: No such file or directory
【参考方案2】:
控制台打开,然后应用程序输出文本(这可能很明显)。默认情况下,应用程序输出文本,然后发生错误。使用 g_set_printerr_handler() 更改该行为(显示错误对话框、写入文件或任何您想要的)。
【讨论】:
这不是问题;在 Windows 上,gcc 默认构建控制台二进制文件,无论是否输出文本,它都会打开一个控制台。您必须链接-mwindows
开关才能获得不打开控制台的二进制文件,如@Matthew Talbert 的回答。以上是关于在 C 中使用 gtk 编写 GUI 程序时如何摆脱控制台?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 MSYS2 在 Windows 上安装 GTK3 和 minGW