我跟着make_vcxproj注释来创建Visual C++项目。我也执行了:使用Visual C++构建mongodb源代码时出错
scons generated-sources
创建错过的文件。在蒙戈source code的主分支,当我建立这个项目我获得以下错误:
Severity Code Description Project File Line Suppression State Error C2370 'kuint16max': redefinition; different storage class (compiling source file src\third_party\s2\base\strtoint.cc) mongod D:\Open Source\mongo\src\third_party\gperftools-2.5\src\base\basictypes.h 74
似乎也有kuint16max
一个在integral_types.h
,另一个在basictypes.h
两个全球性的定义。以下是主要部分basictypes.h
文件(错误相关的):
const uint16 kuint16max = ( (uint16) 0xFFFF);
const uint32 kuint32max = ( (uint32) 0xFFFFFFFF);
const uint64 kuint64max = ((((uint64) kuint32max) << 32) | kuint32max);
const int8 kint8max = ( ( int8) 0x7F);
const int16 kint16max = ( (int16) 0x7FFF);
const int32 kint32max = ( (int32) 0x7FFFFFFF);
const int64 kint64max = ((((int64) kint32max) << 32) | kuint32max);
const int8 kint8min = ( ( int8) 0x80);
const int16 kint16min = ( (int16) 0x8000);
const int32 kint32min = ( (int32) 0x80000000);
const int64 kint64min = ((((uint64) kint32min) << 32) | 0);
和integral_types.h
:
static const uint8 kuint8max = ((uint8) 0xFF);
static const uint16 kuint16max = ((uint16) 0xFFFF);
static const uint32 kuint32max = ((uint32) 0xFFFFFFFF);
static const uint64 kuint64max = ((uint64) GG_LONGLONG(0xFFFFFFFFFFFFFFFF));
static const int8 kint8min = (( int8) 0x80);
static const int8 kint8max = (( int8) 0x7F);
static const int16 kint16min = ((int16) 0x8000);
static const int16 kint16max = ((int16) 0x7FFF);
static const int32 kint32min = ((int32) 0x80000000);
static const int32 kint32max = ((int32) 0x7FFFFFFF);
static const int64 kint64min = ((int64) GG_LONGLONG(0x8000000000000000));
static const int64 kint64max = ((int64) GG_LONGLONG(0x7FFFFFFFFFFFFFFF));
当我改变的Git分支稳定分支,错误仍然存在。所以我认为问题在于我的构建。