Compilacion funciones en C y Postgres desde Windows

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


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 codepg2.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 literalLINE 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 mismatchDETAIL: Server is version 9.0, library is version 8.3.
********** Error **********
ERROR: incompatible library "D:\exte_c\pg_server_function.dll": version mismatchSQL state: XX000Detail: 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 9Lo 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
*-------------------------------------------------------*

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2011-10-27 21:38:28 Re: Numero de consultas sobre una columna en una tabla
Previous Message Edwin Quijada 2011-10-27 20:51:21 RE: Error con untrusted language