【发布时间】:2011-02-11 07:59:39
【问题描述】:
我刚刚从朋友那里接手了游戏开发。使用VC++进行开发。
代码在 Visual Studio 2008 专业版上构建时运行良好。
在没有任何更改的情况下,我尝试在 VC++ Express 2008 Edition 中构建代码,并引发大量错误(超过 100 个)。都是:
error C2953: 'std::tr1::_Result_of1<<em>Rx(</em>_thiscall _Arg0::* )(void),_Farg0&>' : class template has already been defined C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\xxresult 106 或 error C2995: 'std::tr1::_Mem_fn1<_Rx,Rx(_thiscall _Arg0::* )(void),_Arg0> std::tr1::mem_fn(Rx (_thiscall _Arg0::* )(void))' : function template has already been defined C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\xxmem_fn 47
由于所有错误似乎都是由于包含文件而不是来自编写的代码,所以我被卡住了。
任何正确方向的帮助将不胜感激。感谢您的宝贵时间。
【问题讨论】:
-
在我看来,类模板有重复的定义。确保您没有两次包含相同的头文件。
-
@Cody 如果是这样,在 VS2008 专业版中编译/构建时不应该抛出错误。不过谢谢,我去看看
-
我怀疑你没有的代码也不会在专业版中编译。在迁移过程中一定有什么事情搞砸了。也许您有特定源文件或其他东西的双重副本。错误消息似乎在最后为您提供行号和文件名。我知道做的最好的事情是通过代码跟踪问题。 Express 编译器中没有已知的错误;它与专业版中的完全相同。
标签: visual-studio-2008 compiler-errors visual-c++-2008-express