Qt应用程序中显示的错误 - 如何不在Release中显示它们

时间:2014-09-22 21:29:51

标签: qt runtime-error release

Qt项目给出了一些错误 - 我实际上并没有考虑错误:

一些例子:

Fontconfig error: "/etc/fonts/conf.d/65-khmer.conf", line 32: out of memory
  // ? 
QGraphicsItem::ungrabMouse: not a mouse grabber 
  // i think happens when the mouse grab didn't quite happen, user moved too fast...

其他一些人

第一个似乎在这里有答案https://askubuntu.com/questions/421891/fontconfig-error-out-of-memory

所以我无法通过软件修复它,用户必须修复它......因为它依赖于系统......

即使是内置版本,这些错误仍将显示在命令行上......由于它们不会导致应用程序异常,我认为用户不应该看到它们。

如何在不显示这些错误的情况下构建/部署应用程序?

理想情况下,部署的应用程序当然没有错误,但我不知道我能对这些类型的错误做些什么......

1 个答案:

答案 0 :(得分:1)

可以使用

在事实之后重定向流(在本例中为stderr
freopen("/dev/null", "w", stderr);

在任何其他代码运行之前,只需将其放在main中,您应该做得很好。请记住,这可能需要在Windows上进行更多工作。

如果错误消息是通过Qt消息基础结构(qDebug等)发布的,则可以通过函数qInstallMsgHandler设置新的消息处理程序。