2012-08-27 1 views
1

Mon application utilise le connecteur MySQL/C++ qui inclut config.h qui va comme ci-dessous.MySQL Connector et collision d'en-tête VC2010

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

Depuis que je suis en utilisant VC++ 2010 avec MSVCR100, mon application comprend également stdint.h qui va ..

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

Les deux int8_t fait cette erreur de compilation de collision.

J'ai fait quelques recherches sur Google, mais personne ne semble connaître la solution parfaite.

Toute aide serait appréciée.

Merci à l'avance.

+0

http://bugs.mysql.com/bug.php?id=60307 – hansmaad

+1

Connexe: http://stackoverflow.com/questions/11065606/int8-t-redefinition-error-in-config-h-when -trying-to-connect-mysql-cpp-conne – Cecilia

Répondre

1

Avez-vous essayé #define HAVE_INT8_T (et similaire, je suppose que la même chose se produit pour les autres types) avant d'inclure l'en-tête MySQL?

I.e. quelque chose comme

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

EDIT: Si mysql.h comprend quelque chose comme un « config.h », qui se visse des choses encore, vous pouvez essayer d'inclure directement que config.h, ajustez les définit incorrectes, puis d'inclure le MySQL.h. Il y aura probablement un garde d'include autour du config.h pour l'empêcher d'être inclus à nouveau.

+0

Merci beaucoup! –