gpt4 book ai didi

c++ - 在 Qt 中禁用 Glib 事件循环 - QT_NO_GLIB 未生效

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:26:57 24 4
gpt4 key购买 nike

当我运行线程检查工具 helgrind (valgrind toolsuite) 时,我在 glib 库中看到了很多错误。我想压制那些。

抑制文件是一种选择。但我发现:How to use helgrind to debug multithreaded Qt applications .它建议我可以将 QT_NO_GLIB 环境变量设置为 1 以防止 Qt 使用 Glib。

尝试过...

$ export QT_NO_GLIB=1
$ valgrind --tool=helgrind --log-file=helgrind.log ./app
$ grep -o 'g_[_a-z]*' helgrind.log
g_main_context_dispatch
g_main_loop_run
g_mutex_init
g_mutex_lock
g_object_new
...
$ env | grep QT_NO_GLIB
QT_NO_GLIB=1

.. 但是 helgrind 日志包含许多对 Glib 函数的引用。如何设置 QT_NO_GLIB 环境变量?我正在运行 Ubuntu 13.04,使用 Qt 4.8.3。

最佳答案

您看到的 Glib 调用肯定不是来自 Qt 本身。您可以通过 git 从 http://code.qt.io/cgit/qt/qt.git/ 克隆 Qt4.x 源代码来验证这一点然后用 grep 查找“g_main_context_dispatch”。你什么也找不到。这意味着 Glib 调用来自某些第 3 方插件或二进制文件的其他依赖项。

使用“export QT_NO_GLIB=1”来禁用 Glib 事件调度程序是正确的。

关于c++ - 在 Qt 中禁用 Glib 事件循环 - QT_NO_GLIB 未生效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17875736/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com