【发布时间】:2010-11-09 17:52:33
【问题描述】:
Visual Studio 2005 (C++) 中是否有针对编译器错误的“调用堆栈”?
例如,我使用 boost::scoped_ptr 作为 QHash 中的值。然而,这会导致以下编译错误:
1>c:\qt\include\qtcore\../../src/corelib/tools/qhash.h(743) : error C2248: 'boost::scoped_ptr<T>::operator =' : cannot access private member declared in class 'boost::scoped_ptr<T>'
从构建输出中,我知道我的哪个源文件导致错误以及导致错误的 qhash.h 中的行号,但我正在尝试追踪 my中的行号> 产生错误的源文件(因此是“调用堆栈”的想法)。
请注意,我不是在寻找在 QHash 中使用 scoped_ptr 问题的解决方案,而是在寻找编译错误生成位置的问题。这对于帮助追踪奇怪的警告也很有用。在使用模板类时,我经常会遇到这个问题。
谢谢!
【问题讨论】:
-
很好,你标记了你的问题visual-studio......否则我敢声称g++错误更容易阅读,并且经常更有效地引导你找到实际错误......跨度>
-
我想这是设置 gcc 环境并在那里重新编译所有内容的一种解决方案(尽管相当乏味)。对于较小的项目,我肯定会尝试。
-
一旦你习惯了它们,VC++ 就不会那么糟糕了。但我确实同意一般 g++ 有更好的错误消息。真正的问题是,您必须首先了解编译器试图做什么才能了解它的故障模式。
-
我会对更新的 VS 版本有所改变吗? (如果今天有答案)
标签: visual-studio visual-c++ visual-studio-2005 compiler-errors compiler-warnings