我的应用程序使用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防护,以防止再次包含它。

10-07 20:01
查看更多