Thread View: es.comp.os.linux.programacion
8 messages
8 total messages
Started by Azdo
Mon, 08 May 2006 16:53
Problemas con versiones de librerías y configure
Author: Azdo
Date: Mon, 08 May 2006 16:53
Date: Mon, 08 May 2006 16:53
29 lines
2269 bytes
2269 bytes
Hola, estoy tratando de compilar las fuentes de un programa en un entorno un tanto peculiar (un Irix). La versión de la libjpeg que trae no me sirve. Lo que he hecho es compilarla desde las fuentes mediante algo como esto: ./configure --prefix=/mi_directorio --program-suffix=LIM para que el resto de programas que dependían de la libjpeg antigua sigan funcionando. Tras "make && make install" me deja la jerarquía de directorios de librerías, cabeceras y demás en el directorio "/mi_directorio". Del sufijo "LIM" pasa completamente. El caso es que en el programa que quiero compilar, especifico la librería jpeg que quiero usar con: ./configure --with-jpeg=/mi_directorio lo cual funciona perfectamente a la hora de compilar, dado que usa las cabeceras .h de mi_directorio, aunque después compruebo que el programa se está enlazando con las librerías dinámicas antiguas. ¿Cómo puedo hacer para que se enlacen los programas con las librerías nuevas? ¿Será más fácil enlazarlas estáticamente? En ese caso, ¿cómo se haría?
Re: Problemas con versiones de librerías y configure
Author: Azdo
Date: Mon, 08 May 2006 22:01
Date: Mon, 08 May 2006 22:01
6 lines
1500 bytes
1500 bytes
O dicho de una forma más sencilla: ¿cómo puedo compilar software que use librerías con versiones diferentes a las que ya haya instaladas sin que haya problemas de coexistencia? ¿Es la estrategia "estática" la única opción?¿Cómo se haría? Gracias
Re: Re: Problemas con versiones de librerías y configure
Author: Jos� Luis P�rez Diez
Date: Tue, 09 May 2006 09:05
Date: Tue, 09 May 2006 09:05
14 lines
1982 bytes
1982 bytes
In article <1147125712.346291.207950@y43g2000cwc.googlegroups.com>, Azdo wrote: > O dicho de una forma m�s sencilla: �c�mo puedo compilar software que > use librer�as con versiones diferentes a las que ya haya instaladas > sin que haya problemas de coexistencia? �Es la estrategia "est�tica" > la �nica opci�n?�C�mo se har�a? > Tienes que tener las librerias con nobres diferenetes y configurarlas con ldconfig -- Los programadores esta ocupados intendtado mejorar los programas a prueba de idiotas. Mientras tanto el universo intenta mejorar los idiotas. El universo va ganando
Re: Problemas con versiones de librerías y configure
Author: Javier M Mora (jamarier)
Date: Tue, 09 May 2006 09:12
Date: Tue, 09 May 2006 09:12
28 lines
2399 bytes
2399 bytes
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Azdo escribi�: On 8 May 2006 15:01:52 -0700, Azdo wrote: > O dicho de una forma m�s sencilla: �c�mo puedo compilar software que > use librer�as con versiones diferentes a las que ya haya instaladas > sin que haya problemas de coexistencia? �Es la estrategia "est�tica" > la �nica opci�n?�C�mo se har�a? Te recomiendo que le eches un vistazo a: http://www.dwheeler.com/program-library/Program-Library-HOWTO/t1.html Donde se habla un poco de como se enlazan las librer�as. No es necesario usar la estrategia est�tica. Simplemente puedes decirle al enlazador de linux que antes de usar las generales del sistema (las instaladas) use las particulares que tu le vas a decir (las de versiones extra�as). Para automatizar un poco, yo esto lo suelo hacer con un script bash. atte. javier m mora -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (GNU/Linux) iD8DBQFEYF0LpRHCj3lPPYMRAsQdAJ4qZhciY44hLhbC4j0a/wgYVQ+dswCgkKsb 8YueBqB5/jNWBhWyv6AOvlw= =TsHv -----END PGP SIGNATURE-----
Re: Problemas con versiones de librerías y configure
Author: J.A. Gutierrez
Date: Tue, 09 May 2006 09:46
Date: Tue, 09 May 2006 09:46
84 lines
3994 bytes
3994 bytes
Azdo <azdo_b@yahoo.es> wrote: : estoy tratando de compilar las fuentes de un programa en un entorno un : tanto peculiar (un Irix). La versi�n de la libjpeg que trae no me entonces, deberias escribir en es.comp.os.unix : sirve. Lo que he hecho es compilarla desde las fuentes mediante algo : como esto: : ./configure --prefix=/mi_directorio --program-suffix=LIM supongo que el prefijo es /usr/local : para que el resto de programas que depend�an de la libjpeg antigua : sigan funcionando. Tras "make && make install" me deja la jerarqu�a de y para no machacar el sistema de instalacion de software nativo y su base de datos de ficheros instalados... Por otra parte, no especificas la version de IRIX que usas, pero en cualquier caso, te conviene saber que es probable que puedas descargarte una libjpeg mas actual sin salirte del sistema "oficial". Concretamente, el paquete "Image Format Library 1.2.2" incluye la version 6a de la libreria jpeg. (y probablemente exista una version mas nueva de IFL, creo recordar que era descarga gratuita registrandose en las paginas de SGI) : directorios de librer�as, cabeceras y dem�s en el directorio : "/mi_directorio". Del sufijo "LIM" pasa completamente. no se necesita : El caso es que en el programa que quiero compilar, especifico la : librer�a jpeg que quiero usar con: : ./configure --with-jpeg=/mi_directorio : lo cual funciona perfectamente a la hora de compilar, dado que usa las : cabeceras .h de mi_directorio, aunque despu�s compruebo que el : programa se est� enlazando con las librer�as din�micas antiguas. Puedes hacer algo como: CC=cc CFLAGS="-Ofast" \ CPPFLAGS="-I/usr/local/include" \ LDFLAGS="-Ofast -L/usr/local/lib32 -rpath /usr/local/lib32" \ ./configure \ --with-jpeg=/usr/local \ --with-libdir=/usr/local/lib32 : �C�mo puedo hacer para que se enlacen los programas con las : librer�as nuevas? Creando las librerias dinamicas con numero de version superior a las del sistema y a~nadiendo /usr/local/lib[32] a LD_LIBRARY[N32]_PATH. Con eso el enlazador dinamico cargara las nuevas. Alternativamente puedes usar las opciones "-L" y "-rpath" Ejemplo: cc -mips3 -n32 foo.o -rpath /usr/local/lib32 -L/usr/local/lib32 -ljpeg : �Ser� m�s f�cil enlazarlas est�ticamente? En ese caso, �c�mo se : har�a? Y por ultimo, puedes enlazarla estaticamente, aunque no te lo recomiendo: cc -mips3 -n32 foo.o /usr/local/lib32/libjpeg.a -- PGP and other useless info at \ http://webdiis.unizar.es/~spd/ \ finger://daphne.cps.unizar.es/spd \ Timeo Danaos et dona ferentes ftp://ivo.cps.unizar.es/pub/ \ (Virgilio)
Re: Problemas con versiones de librerías y configure
Author: Azdo
Date: Tue, 09 May 2006 11:17
Date: Tue, 09 May 2006 11:17
6 lines
1526 bytes
1526 bytes
Hola, si le cambio los nombres a las librerías, después en la compilación del software, el script "configure" no las encontrará. Muchas gracias de todas maneras
Re: Problemas con versiones de librerías y configure
Author: Azdo
Date: Tue, 09 May 2006 11:21
Date: Tue, 09 May 2006 11:21
23 lines
2314 bytes
2314 bytes
Hola, Javier M Mora (jamarier) ha escrito: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Donde se habla un poco de como se enlazan las librerías. No es necesario > usar la estrategia estática. Simplemente puedes decirle al enlazador de > linux que antes de usar las generales del sistema (las instaladas) use > las particulares que tu le vas a decir (las de versiones extrañas). > > Para automatizar un poco, yo esto lo suelo hacer con un script bash. > Ese es el método que he estado intentando hasta ahora, pasar la dirección de las cabeceras al configure, con lo que la compilación resulta correcta. Lo malo es que después los programas buscarán primero las librerías de sistema en lugar de las que les indique mediante un hipotético LD_LIBRARY_PATH. Al llamarse de igual manera prevalecen las de sistema, es por lo que me incliné a pensar en que podría merecer la pena enlazar estáticamente la versión nueva.
Re: Problemas con versiones de librerías y configure
Author: Javier M Mora (jamarier)
Date: Wed, 10 May 2006 19:52
Date: Wed, 10 May 2006 19:52
51 lines
3449 bytes
3449 bytes
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Azdo escribi�:
On 9 May 2006 04:21:13 -0700, Azdo wrote:
> Javier M Mora (jamarier) ha escrito:
>
>> Donde se habla un poco de como se enlazan las librer�as. No es necesario
>> usar la estrategia est�tica. Simplemente puedes decirle al enlazador de
>> linux que antes de usar las generales del sistema (las instaladas) use
>> las particulares que tu le vas a decir (las de versiones extra�as).
>>
>> Para automatizar un poco, yo esto lo suelo hacer con un script bash.
>>
>
> Ese es el m�todo que he estado intentando hasta ahora, pasar la
> direcci�n de las cabeceras al configure, con lo que la compilaci�n
> resulta correcta. Lo malo es que despu�s los programas buscar�n
> primero las librer�as de sistema en lugar de las que les indique
> mediante un hipot�tico LD_LIBRARY_PATH. Al llamarse de igual manera
> prevalecen las de sistema, es por lo que me inclin� a pensar en que
> podr�a merecer la pena enlazar est�ticamente la versi�n nueva.
>
Citando del documento que te coment�:
You can temporarily substitute a different library for this
particular execution. In Linux, the environment variable
LD_LIBRARY_PATH is a colon-separated set of directories where
libraries should be searched for first, before the standard set of
directories;
Es decir, las librer�as de LD_LIBRARY_PATH son utilizadas antes que las
del sistema.
En el peor de los casos un comando del tipo:
LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH my_program
antepondr�a las librerias locales a cualquiera previamente indicada en
LD_LIBRARY_PATH
Todo esto y el script bash para automatizarlo est�n en el documento
ya citado:
http://www.dwheeler.com/program-library/Program-Library-HOWTO/x36.html
atte. javier m mora
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (GNU/Linux)
iD8DBQFEYkSBpRHCj3lPPYMRAgqnAJ40LH9vQYJmoOCX/G+SlY9+t74RIQCfbnn3
LhnVAP5zp95L9MqQwzusA40=
=EyCl
-----END PGP SIGNATURE-----
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads