Skip site navigation (1) Skip section navigation (2)

Compiler trigger en C sous Windows

From: Synthèse Graphique <contact(at)synthesegraphique(dot)com>
To: pgsql-fr-generale(at)postgresql(dot)org
Subject: Compiler trigger en C sous Windows
Date: 2006-02-10 08:36:54
Message-ID: 68e84e72dd1716a2e54255191f82fb5f@synthesegraphique.com (view raw or flat)
Thread:
Lists: pgsql-fr-generale
Bonjour,

Je m'appuie sur la documentation PostGreSQL 8.1.2, chapitre 33.4 "Un 
exemple complet" (de trigger écrit en C).

En suivant l'exemple, j'ai créé un fichier, ici XXX.c qui contient le 
code fourni fourni en exemple
et qui début par  :
	#include "postgres.h"
	#include "executor/spi.h"       /* nécessaire pour fonctionner avec 
SPI */
	#include "commands/trigger.h"   /* ... et les déclencheurs */

J'ai installé l'environnement MinGW et MSYS.
Dans une fenêtre MSYS, j'ai lancé la commande :
	$ gcc -I/E/Program\ Files/PostgreSQL/8.1/include/server/ -I/E/Program\ 
Files/PostgreSQL/8.1/include/server/port/win32/ -c XXX.c
j'obtiens un fichier
	XXX.o
Puis, je lance la commande
	$ gcc -shared -o pstypes.dll -WI,-dy,--library-path,/E/Program\ 
Files/PostgreSQL/8.1/lib/,-l,libpq.a,--out-implib,pstypes.a XXX.o
et j'obtiens les erreurs suivantes :
	XXX.o:XXX.c:(.text+0x4e): undefined reference to `elog_start'
	XXX.o:XXX.c:(.text+0x62): undefined reference to `elog_finish'
	XXX.o:XXX.c:(.text+0xd1): undefined reference to `SPI_connect'
	XXX.o:XXX.c:(.text+0xf6): undefined reference to `elog_start'
	XXX.o:XXX.c:(.text+0x118): undefined reference to `elog_finish'
	XXX.o:XXX.c:(.text+0x12c): undefined reference to `SPI_exec'
	XXX.o:XXX.c:(.text+0x151): undefined reference to `elog_start'
	XXX.o:XXX.c:(.text+0x173): undefined reference to `elog_finish'
	XXX.o:XXX.c:(.text+0x187): undefined reference to `_imp__SPI_tuptable'
	XXX.o:XXX.c:(.text+0x195): undefined reference to `_imp__SPI_tuptable'
	XXX.o:XXX.c:(.text+0x1a4): undefined reference to `SPI_getbinval'
	XXX.o:XXX.c:(.text+0x1c5): undefined reference to `elog_start'
	XXX.o:XXX.c:(.text+0x1e7): undefined reference to `elog_finish'
	XXX.o:XXX.c:(.text+0x1ec): undefined reference to `SPI_finish'
	XXX.o:XXX.c:(.text+0x213): undefined reference to `SPI_getbinval'
	collect2: ld returned 1 exit status

Je me suis inspiré du thread suivant, sans succès !
	http://archives.postgresql.org/pgsql-admin/2005-12/msg00237.php

Pouvez-vous m'aider à comprendre ce qui ne va pas ?

Olivier Peaucelle

Responses

pgsql-fr-generale by date

Next:From: Jean-Max ReymondDate: 2006-02-10 10:04:42
Subject: Re: Compiler trigger en C sous Windows
Previous:From: dforumsDate: 2006-02-05 16:24:04
Subject: Re: récupérer le type

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group