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

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 (view raw or flat)
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

pgsql-es-ayuda by date

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

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