erreur C2011: ‘timezone’: redéfinition du type ‘struct’ (postgres)

J’essaie de construire un. fichier dll pour étendre le serveur postgres avec les fonctions C. J’utilise Visual Studio 2012 pour construire la DLL et PostgreSQL 9.2. J’ai importé tous les répertoires postgres “\ include \ server *”, mais j’ai les erreurs suivantes:

erreur C2011: ‘fuseau horaire’: redéfinition du type ‘struct’

erreur C2011: ‘itimerval’: redéfinition du type ‘struct’

Dans le fichier * pg_confi_os.h * aux lignes 205 et 214

J’ai essayé cette solution mais sans succès.

Comment résoudre ce problème?

J’ai jeté un coup d’œil à la question aujourd’hui et découvert qu’il s’agissait d’un bogue dans les fichiers inclus PostgreSQL. Voir cet article de la liste de diffusion .

Vous pouvez contourner ce problème en définissant explicitement WIN32 dans les directives de pré-traitement de votre fichier projet.

Voir mon blog sur le sujet aujourd’hui

L’équipe postgresql m’a répondu:

En premier lieu, notez que VS2012 n’est pas (encore) un environnement de construction pris en charge pour Postgres. Voir http://www.postgresql.org/docs/current/static/install-windows-full.html

à votre santé

L’autre réponse:

Tout d’abord, vous souhaiterez créer avec Visual Studio 2010 ou une version antérieure. L’édition Express fonctionne bien.

Deuxièmement, il est très peu probable que vous puissiez simplement comstackr le fichier d’extension .c de manière autonome. Vous devrez définir un ensemble de définitions de préprocesseur, dont certaines sont quelque peu spécifiques à la configuration / à l’environnement.

Le meilleur moyen de comstackr des extensions pour le moment est d’obtenir l’arborescence source de PostgreSQL, de l’append sous forme de dossier dans le répertoire consortingb / avec un Makefile, puis d’utiliser l’outil de src / tools / msvc pour comstackr extension.

Je voudrais vraiment voir cette amélioration, avec une alternative de travail PGXS pour les versions Windows MSVC. Je ne suis au courant de rien, mais je n’ai pas encore étudié en détail la possibilité de créer des extensions en dehors de Windows / MSVC.

– Craig Ringer http://www.2ndQuadrant.com/ Développement PostgreSQL, Support 24×7, Formation & Services