Éviter un concours de déclaration des erreurs dans la définition de type c++

Est-il une manière que je peux faire de g++ ignorer ou contourner contradictoires typedefs?

De fond:

Je suis à écrire du code c++ pour la gridlab_d simulateur. Mon modèle a besoin de se connecter à un c++, base de données, donc je suis en utilisant la base de données mysql++ de la bibliothèque. utilisation de mysql++ de la bibliothèque m'oblige à lier à la base de la bibliothèque, donc je compile avec

g++ -I/usr/include/mysql -I/usr/local/include/mysql++

Problème:

mysql.h et liste.h en gridlab un typedef struct avoir le nom de la LISTE . Voici l'erreur du compilateur

In file included from /usr/include/mysql/mysql.h:76, 
             from /usr/include/mysql++/common.h:182,
             from /usr/include/mysql++/connection.h:38,
             from /usr/include/mysql++/mysql++.h:56,
             from direct_data.cpp:21:
/usr/include/mysql/my_list.h: At global scope:
/usr/include/mysql/my_list.h:26: error: conflicting declaration 'typedef struct st_list LIST'
../core/list.h:22: error: 'LIST' has a previous declaration as 'typedef struct s_list LIST'

Merci pour votre aide!

Ne pouvez-vous pas mettre #ifndef autour de la définit?
Peut-être que vous pourriez créer votre propre abstractions qui peuvent être compilés séparément, de façon à la fois typedefs n'apparaissent pas dans la même unité de compilation.

OriginalL'auteur Vikas Yendluri | 2012-01-14