1

我的应用程序使用 MySQL/C++ 连接器,其中包括如下所示的 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 使这个碰撞编译错误。

我做了一些谷歌研究,但似乎没有人知道完美的解决方案。

任何帮助将不胜感激。

提前致谢。

4

1 回答 1

1

在包含 MySQL 标头之前,您是否尝试过 #define HAVE_INT8_T (以及类似的,我猜其他类型也会发生同样的情况)?

即类似的东西

...
#define HAVE_INT8_T
#include "MySQL.h"
...

编辑:如果 MySQL.h 包含类似“config.h”的内容,这又搞砸了,您可以尝试直接包含该 config.h,然后调整不正确的定义,然后包含 MySQL.h。config.h 周围可能会有一个包含保护,以防止它再次被包含。

于 2012-08-27T07:26:44.920 回答