【问题标题】:Build Problems when moving from VS2008 Prof to VC++ Express 2008从 VS2008 Prof 迁移到 VC++ Express 2008 时的构建问题
【发布时间】:2011-02-11 07:59:39
【问题描述】:

我刚刚从朋友那里接手了游戏开发。使用VC++进行开发。

代码在 Visual Studio 2008 专业版上构建时运行良好。

在没有任何更改的情况下,我尝试在 VC++ Express 2008 Edition 中构建代码,并引发大量错误(超过 100 个)。都是:

 error C2953: 'std::tr1::_Result_of1&lt;<em>Rx(</em>_thiscall _Arg0::* )(void),_Farg0&amp;&gt;' : 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


【解决方案1】:

看起来你正在使用 Nebula2 :)
nsystem.h 中删除"#define __cdecl"
如果某处出现如下定义,也会发生此错误:

#define __cdecl

#define volatile

#define const

【讨论】:

    猜你喜欢
    • 2011-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多