【发布时间】:2014-09-22 21:29:50
【问题描述】:
一个 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
所以我无法通过软件修复它,用户必须修复它......因为它取决于系统......
即使是内置版本,这些错误仍然会显示在命令行上...由于它们不会导致应用程序异常,我认为用户不应该看到它们。
如何在不显示这些错误的情况下构建/部署应用程序?
理想情况下,部署的应用程序当然不会出现错误,但我不知道如何处理这些类型的错误...
【问题讨论】:
-
假设错误被打印到
stderr:freopen( "/dev/null", "w", stderr );应该可以解决问题。显然,您需要一些其他方法来在 Windows 上获取空设备。更便携的方式可能是stackoverflow.com/questions/4954140/… 中的代码,但我不知道是否使用 Qt 消息基础结构打印了 fonconfig 错误。 -
因为它是一个 GUI 应用程序,Windows 用户不太可能看到这些错误......但我不明白在哪里放置 "freopen("/dev/null", "w", 标准错误);"命令?
-
我没有看到这些错误的打印位置,它们不是 qDebug 输出
-
对于 Windows:是的,但是当您尝试将流重定向到不存在的文件时可能会遇到更多错误。放置位置:在您的
main中,在其他任何事情发生之前。 -
能否请您作为答案发布,以便我接受,谢谢
标签: qt runtime-error release