如果这是在错误的部分,我深表歉意-根据需要移动...
一点背景知识:我有一个我构建的 Qt 4.8.4 应用程序,它运行得很漂亮……对我来说。我使用 VNC 连接到 Linux Redhat 盒子。
但是,当将应用程序提供给同事使用时,他无法在没有分段错误的情况下使其运行:基本上,他会尝试选中其中一个复选框,应用程序将出现分段错误并使用 gdb,回溯显示:
#0 0x00000000 in ?? ()
#1 0xb7a2b9e8 in QGtkStyle::drawComplexControl () from /usr/local/Trolltech/Qt-4.8.4/lib/libQtGui.so.4
#2 0xb7b315b5 in QScrollBar::paintEvent () from /usr/local/Trolltech/Qt-4.8.4/lib/libQtGui.so.4
#3 0xb7682fd4 in QWidget::event () from /usr/local/Trolltech/Qt-4.8.4/lib/libQtGui.so.4
...
需要注意的几点:
- 另一个用户:他和我在同一个 Linux Redhat 机器上,只是登录名不同。他的
PATH
,QTDIR
,QTLIB
,QTBIN
,QTINC
, &QTMAKESPEC
和我一样。我们都在使用 bash shell。 - 我在我的应用程序中进行了一些调试,以比较 qt 已知的系统环境,它们是相同的(使用用户名/登录信息的执行)。
我一直在我的桌子上敲打我的头试图弄清楚这一点。
好吧,我决定随机做一些事情,然后我运行了已安装的 Qt Designer ......它无法启动。有趣的...
所以我做了一些调查,发现菜单中的Qt Designer是针对Qt-3.3的,也安装了。那,或者我读过的,不应该是一个问题。
然后,我尝试启动与 Qt 4.8.4 一起打包的 Qt Designer,但它也无法启动。如果我尝试从终端启动它,我会得到“Segmentation Fault”输出。(进一步调查显示 Qt 助手正在做同样的事情......)
通过 gdb 运行设计器(对于 qt 4.8.4),回溯显示:
#0 0x00000000 in ?? ()
#1 0xb6f049e8 in QGtkStyle::drawComplexControl() from /usr/local/Trolltech/Qt-4.8.4/lib/libQtGui.so.4
#2 0xb700a5b5 in QScrollBar::paintEvent() from /usr/local/Trolltech/Qt-4.8.4/lib/libQtGui.so.4
#3 0xb6b5bfd4 in QWidget::event () from /usr/local/Trolltech/Qt-4.8.4/lib/libQtGui.so.4
设计师的回溯与我的应用程序的回溯相同!
...而且我不知道这对我的应用程序/其他用户意味着什么。
我最初想重新安装 Qt,但如果它对我来说工作正常,那将如何解决问题?