Re: [GENERAL] Compiling extension C with MingW in windows, Error...
On Fri, Sep 3, 2010 at 18:23, Edwin Quijada listas_quij...@hotmail.com wrote: Date: Fri, 3 Sep 2010 09:41:17 +0200 Subject: Re: [GENERAL] Compiling extension C with MingW in windows, Error... From: mag...@hagander.net To: listas_quij...@hotmail.com CC: pgsql-general@postgresql.org On Fri, Sep 3, 2010 at 5:31 AM, Edwin Quijada listas_quij...@hotmail.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_cC:\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 Sorry, I don't know this. I don't use mingw myself anymore. But it should work in the same way as you link against any other third-party DLLs with it - DLLs and EXEs are actually the same thing, just with different names... -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/ -- Sent via pgsql-general mailing list (pgsql-general@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general
Re: [GENERAL] Compiling extension C with MingW in windows, Error...
On Fri, Sep 3, 2010 at 5:31 AM, Edwin Quijada listas_quij...@hotmail.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_cC:\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 Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/ -- Sent via pgsql-general mailing list (pgsql-general@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general
Re: [GENERAL] Compiling extension C with MingW in windows, Error...
Date: Fri, 3 Sep 2010 09:41:17 +0200 Subject: Re: [GENERAL] Compiling extension C with MingW in windows, Error... From: mag...@hagander.net To: listas_quij...@hotmail.com CC: pgsql-general@postgresql.org On Fri, Sep 3, 2010 at 5:31 AM, Edwin Quijada listas_quij...@hotmail.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_cC:\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 *---*