RE: Compilacion funciones en C y Postgres desde Windows

From: Edwin Quijada <listas_quijada(at)hotmail(dot)com>
To: <reingart(at)gmail(dot)com>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Compilacion funciones en C y Postgres desde Windows
Date: 2011-10-27 23:07:50
Message-ID: BAY155-W3207996C8ECC9F90247BE3E3D20@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


Gracias Mariano. Pero el problem mio ahora es que estoy compilando con MinGW y al parecer el core de Postgres como que no lo usa. El problema que estoy teniendo es del compilador realmente

00276 #ifndef HAVE_INT64
00277 typedef long long int int64;
00278 #endif
00279 #ifndef HAVE_UINT64
00280 typedef unsigned long long int uint64;
00281 #endif
00282 #else
00283 /* neither HAVE_LONG_INT_64 nor HAVE_LONG_LONG_INT_64 */
00284 #error must have a working 64-bit integer datatype ----> Este es mi error y por eso no me permite crear el objeto
00285 #endif

*-------------------------------------------------------*
*-Edwin Quijada
*-Developer DataBase
*-JQ Microsistemas

*-Soporte PostgreSQL

*-www.jqmicrosistemas.com
*-809-849-8087
*-------------------------------------------------------*

> From: reingart(at)gmail(dot)com
> Date: Thu, 27 Oct 2011 20:00:58 -0300
> Subject: Re: [pgsql-es-ayuda] Compilacion funciones en C y Postgres desde Windows
> To: listas_quijada(at)hotmail(dot)com
> CC: pgsql-es-ayuda(at)postgresql(dot)org
>
> Tenes instalado los fuentes de la version 9?
>
> En su momento yo logre compilar tanto con Visual C y MingW
>
> Te paso el link con las instrucciones, espero que te sirva:
>
> http://www.arpug.com.ar/trac/wiki/CompilandoPostgreSQLEnWindows
>
> Sds
>
> Mariano Reingart
> http://www.sistemasagiles.com.ar
> http://reingart.blogspot.com
>
>
>
> 2011/10/27 Edwin Quijada <listas_quijada(at)hotmail(dot)com>:
> > Hola ! Estoy tratando de compilar unas funciones que he hecho en C para
> > Postgres en Windows la compilacion me arrojo warnings pero compilo
> > D:\exte_c>compila2
> > D:\exte_c>D:\mingw\bin\gcc -g -O2 -Wall -Wmissing-prototypes -Wpointer-arith
> > -Wdeclaration-after-statement
> > -Wendif-labels -fno-strict-aliasing -fwrapv -I "C:/ariela/db/include/"
> > -I "C:/ariela/db/include/server" -I
> > "C:/ariela/db/include/server/port/win32"
> > -DEXEC_BACKEND "-I C:/ariela/db/include/server/port/win32" -c pg2.c -o pg2.o
> > In file included from C:/ariela/db/include/server/postgres.h:47,from
> > pg2.c:3:
> > C:/ariela/db/include/server/c.h:284:2: #error must have a working 64-bit
> > integer datatype
> > In file included from pg2.c:3:
> > C:/ariela/db/include/server/postgres.h:550: error: syntax error before "X"
> > In file included from pg2.c:5:
> > libstd.h:116: warning: no previous prototype for 'getmacwindows2num'
> > pg2.c:40: warning: no previous prototype for 'pg_serverid'
> > pg2.c: In function `pg_serverid':
> > pg2.c:44: warning: ISO C90 forbids mixed declarations and code
> > pg2.c: At top level:
> > pg2.c:52: warning: no previous prototype for 'one'
> > D:\exte_c>D:\mingw\bin\gcc -shared -o pg_server_function.dll pg2.o -L
> > "C:\ariela\db\lib" -lpostgres
> > Al terminar me genero un archivo llamado pg_server_function.dll que es donde
> > estan las funciones en C ya compiladas
> > Mi problema es que al momento de agregar estas funciones a la BD usando
> > CREATE FUNCTION pg_serverid(integer) RETURNS double precision
> > AS 'D:\\exte_c\\pg_server_function.dll', 'pg_serverid'
> > LANGUAGE C STRICT;
> > Consigo estos errores::::::::
> > WARNING: nonstandard use of \\ in a string literal
> > LINE 2: AS 'D:\\exte_c\\pg_server_function.dll', 'pg_serverid'
> > ^
> > HINT: Use the escape string syntax for backslashes, e.g., E'\\'.
> > ERROR: incompatible library "D:\exte_c\pg_server_function.dll": version
> > mismatch
> > DETAIL: Server is version 9.0, library is version 8.3.
> > ********** Error **********
> > ERROR: incompatible library "D:\exte_c\pg_server_function.dll": version
> > mismatch
> > SQL state: XX000
> > Detail: Server is version 9.0, library is version 8.3.
> > Lo extraño es que si compile contra la version 9 no la 8.3, bueno cuando
> > hice la función la hice con 8.3 pero esa versión incluso la desinstale de la
> > maquina para recompilar con la 9
> > Lo compilo de esta forma
> > D:\mingw\bin\gcc -g -O2 -Wall -Wmissing-prototypes
> > -Wpointer-arith
> > -Wdeclaration-after-statement
> > -Wendif-labels -fno-strict-aliasing
> > -fwrapv -I "C:/ariela/db/include/"
> > -I "C:/ariela/db/include/server"
> > -I "C:/ariela/db/include/server/port/win32"
> > -DEXEC_BACKEND "-I C:/ariela/db/include/server/port/win32" -c pg2.c -o pg2.o
> > D:\mingw\bin\gcc -shared -o pg_server_function.dll pg2.o -L
> > "C:\ariela\db\lib" -lpostgres
> > No se algún parámetro de esto le asegura que es la versión 8.3 pero supongo
> > que no porque son solo parámetros del compilador. Uso MinGW para compilar.
> > La instalacion de Postgres la hice desde el instalador de EnterpriseDB ,
> > sera que tienen la version 8.3 ? No creo...no?
> >
> > *-------------------------------------------------------*
> > *-Edwin Quijada
> > *-Developer DataBase
> > *-JQ Microsistemas
> > *-Soporte PostgreSQL
> > *-www.jqmicrosistemas.com
> > *-809-849-8087
> > *-------------------------------------------------------*
> >
> >
> -
> Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Rodrigo Gonzalez 2011-10-27 23:24:24 Re: Compilacion funciones en C y Postgres desde Windows
Previous Message Mariano Reingart 2011-10-27 23:00:58 Re: Compilacion funciones en C y Postgres desde Windows