编译时的结果不同(null)

时间:2014-02-27 10:16:02

标签: c++ qt compilation static-linking

我有一个C ++ (Qt)项目,其中包含一个静态链接的(非Qt,由我编写)库,它可以进行一些计算和基于该库的GUI应用程序库。

编译GUI应用程序(静态链接计算库)的一半时间我收到空结果。

如果我清理并重建整个项目,它会再次运作。

我完全不知道这个故障来自何处,我正在寻找解释或至少指导什么以及在哪里寻找。

关于图书馆如何运作的更多信息:
启动Parameters类的实例,然后将其作为指向Computation类的构造函数的指针传递。 然后它有一个方法,根据Parameters中包含的参数进行计算,并返回long double结果。

谢谢!

1 个答案:

答案 0 :(得分:2)

如果您有间歇性内存损坏,请使用valgrind运行您的程序,这在大多数主要Linux发行版中都可用。

例如:

valgrind ./my_binary

这将产生(可能)大的内存泄漏,溢出,未经初始化的变量或其他无效的内存访问日志,重要的是使用正确的选项的行号和堆栈跟踪。包括@MichaelWalz在评论中建议的未初始化变量。

这可以让您缩小代码或库中的问题范围。