2

我在 Ubuntu 10.04 下使用 Qt 5.0.1,在我的应用程序中,我需要在运行时将 QSharedPointer 与适当的 dynamic_cast (object_cast) 转换一起使用。这些转换在运行时正确加载的共享对象中调用。我必须部署我的应用程序才能在具有 Ubuntu 10.04 操作系统的嵌入式计算机上运行它;这就是我在 Ubuntu 10.04 下使用 Qt 的原因。

如果我构建我的应用程序并在安装了 Qt 库的同一台机器上运行它,那么一切都会按预期工作。

但是,如果我在嵌入式计算机上运行应用程序,qSharedPointerDynamicCast(以及类似的 QSharedPointer::dynamicCast、qSharedPointerObjectCast 和 QSharedPointer::objectCast)会失败并返回空指针。我检查了两台机器是否具有相同的配置,并且除了 dynamic_cast/object_cast 问题之外,一切似乎都运行良好。

我认为这可能是一个 RTTI 问题,但是,经过广泛的谷歌搜索,我没有找到我的问题的解决方案。

4

1 回答 1

0

我认为对您的麻烦的唯一解释是您的应用程序中有内存错误,并且您正在破坏您的对象或使用已释放的对象。使用 Valgrind 看看你会得到什么。

于 2013-09-24T19:02:17.243 回答