在Release中的std :: cout变量初始化中使用/ MT崩溃进行构建,但不在Debug中

时间:2016-07-06 16:46:15

标签: c++ visual-studio qt

我有一个Visual Studio 2015应用程序,它链接两个静态库(在同一个解决方案中)和一些Qt库(动态)。

应用程序和每个静态库都是用/ MT构建的。 Debug版本运行良好,但发布版本在启动时动态初始化' std :: cout '静态变量(从 _initterm 调用)。我无法进一步深入,因为我错过了深呼叫的调试符号......

我怀疑:

  • 我的静态库和VC运行时静态库之间的某处静态初始化失败...
  • Qt可能是用/ MD构建的并且会产生冲突,但是在这里,如果没有调试信息,我无法确定......

有谁知道为什么?或者一些调试这个的技巧?

修改:

我试过没有Qt,只有两个静态库链接到一个应用程序,std :: cout动态初始化是正常的(_initterm结束没有问题),但是,一旦进入main,当我尝试instanciate和然后销毁一个std :: istringstream,它在std :: istringstream的虚拟析构函数中崩溃......我不明白......

0 个答案:

没有答案