[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Enlazar con las librerias de postgresql.



Rafael Eduardo Martín Candial <RAEMCA@teleline.es> writes:

[...]

> libpq++.a  
> libpq.a	

[...]

> gcc  -L/usr/lib/  -I/usr/include/pgsql example1.cpp 

Creo que te falta poner -lpq y -lpq++ al final de esta linea.  Para
que el compilador enlace tu programa con las librerias que necesitas
se lo tienes que decir, no basta con decirle donde están, también le
tienes que decir con cuales enlazar.  La linea quedaría así:

$ gcc -L/usr/lib -I/usr/include/pgsql example1.cpp -lpq -lpq++

> /tmp/ccxeEA2h.o: In function `exit_nicely(pg_conn *)':
> /tmp/ccxeEA2h.o(.text+0x8): undefined reference to `PQfinish'
> /tmp/ccxeEA2h.o: In function `main':
> /tmp/ccxeEA2h.o(.text+0x66): undefined reference to `PQsetdbLogin'
> /tmp/ccxeEA2h.o(.text+0x77): undefined reference to `PQstatus'
> /tmp/ccxeEA2h.o(.text+0xa1): undefined reference to `PQerrorMessage'

[...]

Todo esto es precisamente porque no encuentra el código que contiene
esas funciones, y que es precisamente el que se encuentra en las
librerías con las que tienes que enlazar.

> ¿ALGUIEN PUEDE AYUDARME?
> Quiero configurar un entorno para compilar aplicaciones que accedan
> a postgresql.
> Los fuentes de mis programas en un directorio.
> Los ejecutables reultantes de la compilacion los quiero en otro directorio.
> Los objetos quiero que se almacenen en un ditectorio.
> Vamos, una esructura semejenate a esta:
> 
> ~/fuentes/source
> ~/fuentes/include
> ~/bin
> ~/obj
> ~/scr/mak
> ~/scr/sh
> 
> En source los fuentes y los ficheros de cabecera en include.
> los cobjetos generados en la compilacion  en obj
> en bin los programas generados.
> en mak las macros de compilacion.
> y en sh las shell de ejecucion.
> 
> Necesito ayuda mara crear un .mak que haga todo esto y enlace con
> las librerias de la base de datos.

Prueba con `info make'.  Ahí te explica todo lo que hace falta para
crear los makefiles.

Hasta luego.

-- 
------------------------------------------------------------
David Muriel.
Debian GNU/Linux woody + Emacs 20.5.2 + Gnus v5.8.3
Linux registered user #25632 (http://counter.li.org/)
------------------------------------------------------------

..."El trabajo en equipo es esencial...te permite echarle la culpa a otro."...



Reply to: