我的应用程序使用MySQL / C++ Connector,其中包括config.h,如下所示。
// ...
#if !defined(HAVE_INT8_T) && defined(HAVE_MS_INT8)
typedef __int8 int8_t;
#endif
// ...
由于我将VC++ 2010与MSVCR100一起使用,因此我的应用程序还包含stdint.h。
/* TYPE DEFINITIONS */
typedef signed char int8_t;
typedef short int16_t;
typedef int int32_t;
// ...
这两个int8_t使此冲突编译错误。
我做了一些谷歌研究,但似乎没有人知道完美的解决方案。
任何帮助将不胜感激。
非常感谢。
最佳答案
在包含MySQL header 之前,您是否尝试过#define HAVE_INT8_T(类似,我猜其他类型也是如此)?
即就像是
...
#define HAVE_INT8_T
#include "MySQL.h"
...
编辑:如果MySQL.h包含类似“config.h”的内容,这又使事情变糟,则可以尝试直接包含config.h,然后调整错误的定义,然后包含MySQL.h。 config.h周围可能会有一个include防护,以防止再次包含它。