2

Ubuntu10.04でQt5.0.1を使用していますが、アプリケーションでは、実行時にQSharedPointerを適切なdynamic_cast(object_cast)変換と一緒に使用する必要があります。これらの変換は、実行時に適切にロードされる共有オブジェクトで呼び出されます。Ubuntu 10.04オペレーティングシステムを搭載した組み込みコンピューターで実行するには、アプリケーションをデプロイする必要があります。そのため、Ubuntu10.04でQtを使用しています。

アプリケーションをビルドし、Qtライブラリがインストールされているのと同じマシンで実行すると、すべてが期待どおりに機能します。

ただし、組み込みコンピューターでアプリケーションを実行すると、qSharedPointerDynamicCast(および同様のQSharedPointer :: dynamicCast、qSharedPointerObjectCast、QSharedPointer :: objectCast)が失敗し、nullポインターが返されます。両方のマシンの構成が同じであることを確認しました。dynamic_cast/object_castの問題を除いて、すべてが正常に機能しているようです。

これはRTTIの問題かもしれないと思いますが、徹底的にグーグルした後、問題の解決策が見つかりませんでした。

4

1 に答える 1

0

あなたの問題の唯一の説明は、アプリケーションにメモリのバグがあり、オブジェクトを破損しているか、解放されたオブジェクトを使用していることだと思います。Valgrind を使用して、何が得られるかを確認してください。

于 2013-09-24T19:02:17.243 に答える