From: | Edwin Quijada <listas_quijada(at)hotmail(dot)com> |
---|---|
To: | <magnus(at)hagander(dot)net> |
Cc: | <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Compiling extension C with MingW in windows, Error... |
Date: | 2010-09-03 16:23:52 |
Message-ID: | BAY155-w20EA505151FAE4384B287AE38D0@phx.gbl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
> Date: Fri, 3 Sep 2010 09:41:17 +0200
> Subject: Re: [GENERAL] Compiling extension C with MingW in windows, Error...
> From: magnus(at)hagander(dot)net
> To: listas_quijada(at)hotmail(dot)com
> CC: pgsql-general(at)postgresql(dot)org
>
> On Fri, Sep 3, 2010 at 5:31 AM, Edwin Quijada
> <listas_quijada(at)hotmail(dot)com> wrote:
> > Hi, I am tryng to compile a C extension in windows using Minigw but always I
> > get the same error
> >
> > C:\Program Files\PostgreSQL\8.3\share\exte_c>C:\mingw\bin\gcc -shared -o
> > pg2.dll
> > pg2.o
> > pg2.o:pg2.c:(.text+0x86): undefined reference to
> > `_imp__CurrentMemoryContext'
> > pg2.o:pg2.c:(.text+0x92): undefined reference to `MemoryContextAlloc'
> > collect2: ld returned 1 exit status
> >
> > This error is just when it links.
>
> You need to link against postgres.exe to get access to these symbols.
> I don't recall if the mingw linker allows you to just specify the EXE
> file these days, but I think it does. If not, you'll need to create an
> import library from the EXE and link to that (the binary distribution
> only ships with import libraries for MSVC, but mingw can't use
> standard windows import libraries, so you need to create your own
> there)
Magnus how can I linking against postgres.exe I mean the gcc line. I did others function and worked fine
This is the function that I did and worked, with this code I did a foo.dll and added this to postgresql.
#include "postgres.h"
#include <string.h>
#include "fmgr.h"
#ifdef PG_MODULE_MAGIC
PG_MODULE_MAGIC;
#endif
/* by value */
PG_FUNCTION_INFO_V1(add_one);
Datum add_one(PG_FUNCTION_ARGS)
{
int32 arg = PG_GETARG_INT32(0);
PG_RETURN_INT32(arg + 1);
}
*-------------------------------------------------------*
*-Edwin
Quijada
*-Developer DataBase
*-JQ Microsistemas
*-Soporte PostgreSQL
*-www.jqmicrosistemas.com
*-809-849-8087
*-------------------------------------------------------*
From | Date | Subject | |
---|---|---|---|
Next Message | Bayless Kirtley | 2010-09-03 18:34:30 | Re: Connection question |
Previous Message | A. Kretschmer | 2010-09-03 16:01:10 | Re: alter column to inet get error. |