[PG FONCTION C] Probleme palloc.h sous windows
Sujet : Développement de fonction C sous Postgre pour renvoyer des RECORD et des SET OF
Configuration : Postgre 8.2 (et 8.3) sur OS Windows XP, compilation sous Dev Cpp
Bonjour,
Lorsque je cherche à compiler ma dll (pour créer mes fonctions C sous PostGre) j'ai un problème récurrent avec les fonctions définies dans palloc.h
Ainsi lorsque j'utilisais palloc() j'avais l'erreur suivante :
Code:
1 2 3
| [Linker error] undefined reference to `libpostgres_a_iname'
[Linker error] undefined reference to `libpostgres_a_iname'
[Linker error] undefined reference to `_nm__CurrentMemoryContext' |
En parcourant des forums j'ai vu qu'il était possible d'utiliser pgport_palloc à la place de palloc. Cela m'a permis de résoudre mon problème.
Mais maintenant que je cherches à utiliser des SRF pour renvoyer des SET OF, j'ai le même problème qui survient avec l'utilisation de :
MemoryContextSwitchTo() :bug:
Quelqu'un aurait-il une idée ?
Notes :
1- MemoryContext monContext; ne pose pas de problème par contre.
2- Dans palloc.h on peut lire :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| /*
* MemoryContextSwitchTo can't be a macro in standard C compilers.
* But we can make it an inline function when using GCC.
*/
#ifdef __GNUC__
static __inline__ MemoryContext
MemoryContextSwitchTo(MemoryContext context)
{
MemoryContext old = CurrentMemoryContext;
CurrentMemoryContext = context;
return old;
}
#else
extern MemoryContext MemoryContextSwitchTo(MemoryContext context);
#endif /* __GNUC__ */ |
3- Normalement je linke avec libpostgres.a uniquement mais pour tester j'ai linké avec toutes celles présentes dans le repertoire lib de postgre. Ca ne change rien.
Si ça inspire quelqu'un ???? 8O 8O
Cordialement,