【发布时间】:2017-09-04 16:51:26
【问题描述】:
这真的把我难住了。
我们有一个定义了十几个 getter 和 setter 的类,它们为各种成员变量采用混合类型(QString、int、bool)。我目前正在为一些额外的数据添加一组新的函数和变量,一切都很好,但是当我运行代码并创建该类的一个新实例作为boost::shared_ptr,然后我立即在@987654322 中得到一个段错误@。
我也可以更进一步,如果我只添加 getter 和变量,它将不再出现段错误。如果我将变量更改为 bool 而不是 QString,它会起作用,但是如果我更改为 std::string 它仍然会在同一个地方出现段错误,这更加奇怪,因为变量不再是 Qt 的.如果我创建一个新的类实例而不是boost::shared_ptr,那很好,完全没有问题。这些函数尚未在类内部或外部使用。
【问题讨论】:
-
您是否尝试重新运行 qmake?还是重建整个项目?可能是您添加了一些标头并且 qmake 没有更新依赖项。链接它们时似乎不兼容的编译单元。
-
我已经尝试过 clean-rebuild 路线,因为我认为这可能是一些奇怪的编译问题。
-
能贴出代码吗?
-
原来垃圾目录并重新检查新代码实际上解决了它,所以我猜
ant clean没有垃圾。
标签: c++ linux qt shared-ptr