1

私のアプリケーションは、以下のようになる config.h を含む MySQL/C++ コネクタを使用します。

// ...
#if !defined(HAVE_INT8_T) && defined(HAVE_MS_INT8)
typedef __int8          int8_t;
#endif
// ...

MSVCR100 で VC++ 2010 を使用しているため、アプリケーションには stdint.h も含まれています。

/* TYPE DEFINITIONS */
typedef signed char int8_t;
typedef short int16_t;
typedef int int32_t;
// ...

2 つの 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 が再び含まれないようにするために、おそらく config.h の周りにインクルード ガードがあるでしょう。

于 2012-08-27T07:26:44.920 に答える