linux - Qt Designer 和 Qt Assistant 启动时出现段错误

标签 linux qt4 qt-designer

如果这是错误的部分,我深表歉意 - 请根据需要移动...

一些背景: 我有一个我构建的 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
...

需要注意的几点:

  1. 另一个用户:他和我在同一个 Linux Redhat 机器上,只是登录方式不同。他有完全相同的PATH, QTDIR, QTLIB, QTBIN, QTINC, & QTMAKESPEC 和我一样。我们都在使用 bash shell。
  2. 我在我的应用程序中进行了一些调试,以比较 qt 已知的系统环境,它们是相同的(除了用户名/登录信息之外)。

我一直在用我的头敲 table 试图解决这个问题。

好吧,我决定随机做一些事情,然后我运行了已安装的 Qt Designer……它无法启动。 有趣...

于是查了一下,菜单里的Qt Designer是针对Qt-3.3的,也安装了。那个,或者我读过的,应该不是问题。

然后我尝试启动与 Qt 4.8.4 打包在一起的 Qt Designer,但令人惊讶的是它也无法启动。如果我尝试从终端启动它,我会得到“Segmentation Fault”输出。 (进一步调查发现Qt Assistant也在做同样的事情...)

通过 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,但如果它对我来说工作正常,那将如何解决问题?

最佳答案

所以对于遇到类似问题的任何人,我相信我已经找到了答案,至少在这种情况下是这样:

在比较了我的主目录和其他用户的主目录之后,我发现了两个最让我感兴趣的文件夹:

.config/
.qt/

事实证明,其他用户丢失 .qt 文件夹!在我的 .config 中,我有一个他没有的“Trolltech”文件夹。所以我将我的复制到他的并在尝试再次运行之前注意到最后一件事......

在 .config/下,有一个名为 Trolltech.conf 的文件 - 猜猜是什么:他的与我的截然不同:我的 Trolltech 没有为 Qt 4.8.4 设置所有内容。 conf文件正在设置。所以我也复制了它。

瞧瞧——Qt Designer(适用于 3.3 和 4.8.4)、Qt Assistant 和我的应用程序现在都运行良好。 :D

关于linux - Qt Designer 和 Qt Assistant 启动时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15662123/

相关文章:

c++ - QTimer每秒执行一次方法

c++ - 使用 qt 为发送者和接收者自动生成的 Ui

python - 将图形嵌入 GUI(Qtdesigner 和 Pyside)

linux nasm 命令行 args 作为整数

c++ - QT4:带圆角的透明窗口

linux - bash:当标准输出不存在时该怎么办

c++ - 如何让Widget的位置固定?

windows - 选择 "Choose Resource..."时 Qt Designer 卡住(锁定)

linux - 在 Linux 中链接共享对象时遇到问题

linux - 将 x 个文件 move 到新文件夹