1

これが間違ったセクションにある場合はお詫びします - 必要に応じて移動してください...

ちょっとした背景: 私が作成した Qt 4.8.4 アプリケーションは、美しく動作します... 私にとっては。VNC を使用して Linux Redhat ボックスに接続しています。

しかし、使用するために同僚にアプリケーションを渡すとき、彼はセグメンテーション違反を起こさずにそれを実行することができません: 基本的に、彼はチェックボックスの 1 つをチェックしようとします。ショー:

#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. もう 1 人のユーザー: 彼は私と同じ Linux Redhat ボックスを使用していますが、ログイン方法が異なるだけです。彼は私とまったく同じ、、、、、、をPATH持っています。どちらも bash シェルを使用しています。QTDIRQTLIBQTBINQTINCQTMAKESPEC
  2. qtで知られているシステム環境を比較するために、アプリケーションに少しデバッグを加えましたが、それらは同じです(ユーザー名/ログインの実行を除いて)。

私はこれを理解しようとして、机に頭をぶつけてきました。

さて、私はランダムなことをすることに決めました & インストールされている 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 を再インストールすることを考えていましたが、問題なく動作している場合、どうすれば問題が解決するのでしょうか?

4

1 に答える 1

0

したがって、同様の問題を抱えている人にとっては、少なくともこの場合は答えが見つかったと思います。

自分のホーム ディレクトリと他のユーザーのホーム ディレクトリを比較したところ、私が最も興味を持った 2 つのフォルダーが見つかりました。

.config/
.qt/

結局のところ、他のユーザーには.qtフォルダーがありませんでした! そして、私の.configの中には、彼が持っていなかった「Trolltech」フォルダがありました。それで、私は私のものを彼にコピーし、もう一度実行しようとする前に最後のことに気付きました...

.config/ の下に、という名前のファイルがありますTrolltech.conf- 何を推測しますか: 彼は私のものとは劇的に異なっていました: 私の Trolltech.conf ファイルが設定していた Qt 4.8.4 のすべてを設定していませんでした。だから私もそれをコピーしました。

そして、見よ - Qt Designer (3.3 および 4.8.4 用)、Qt Assistant、および私のアプリケーションはすべて、今では美しく動作します。:D

于 2013-03-27T15:50:54.263 に答える