在 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 程序时如何摆脱控制台?的主要内容,如果未能解决你的问题,请参考以下文章

在 GTK 中使用多线程?

使用 gtkmm 编译 gtk 程序时出错

如何使用 MSYS2 在 Windows 上安装 GTK3 和 minGW

gtk_main 后恢复控制

如何在等待程序启动混乱/GTK +时制作加载/介绍动画弹出窗口

如何编写使用终端作为 GUI 的应用程序? (在 C 中)