Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Librerias estáticas (https://www.clubdelphi.com/foros/showthread.php?t=76748)

luis1980 24-11-2011 20:27:24

Librerias estáticas
 
Hola a todos, me gustaría saber si es posible usar una libreria con extensión .a en borland c++ builder o si alguien sabe cómo convertirla en una libreria con extensión .lib para dicho compilador.
Muchas gracias de antemano.

Casimiro Notevi 24-11-2011 21:52:53

Recuerda nuestra guía de estilo, gracias, pon títulos descriptivos a tus preguntas.

luis1980 24-11-2011 23:25:05

Gracias, lo tendré en cuenta para la próxima.

Ñuño Martínez 27-11-2011 19:00:13

Que yo sepa, no hay ninguna herramienta que haga una conversión directa de archivos ".lib" a ".a" o viceversa. La principal razón es que los archivos ".lib" son utilizados únicamente por compiladores comerciales, y cada uno utiliza un formato de archivo diferente y muchas veces incompatibles entre sí. Los archivos ".a", sin embargo, los utilizan una mayor variedad de programas (no necesariamente compiladores, ya que "a" significa "archive" y es un formato de archivo genérico, como "arc", "tar", "zip", etc.).

Otra razón es que los compiladores que usan ".a" suelen utilizar como formato de los archivos objeto el ELF, que aun siendo "multiplataforma" es incompatible en todo grado al formato usado por los compiladores para Windows y MS-DOS, que además puede ser diferente para cada compañía (Borland usa un formato, Microsoft otro, Watcom otro, etc).

Es decir, que para convertir un archivo ".lib" a ".a" habría que extraer la información del primero, desensamblar el código objeto, volver a ensamblarlo para generar nuevo código objeto y empaquetarlo. Es mucho más fácil y rápido usar un compilador que use el formato ".a" para recompilar el código original (GCC, DjGPP, GNU/Pascal, FreePascal, Gambas, ... dependiendo del lenguaje, la plataforma y los gustos de cada uno). Además, recuerda que desensamblar código ejecutable (y los archivos objeto son código ejecutable, al fin y al cabo) es ilegal en la mayor parte de los países.

luis1980 28-11-2011 09:12:41

Gracias por responder. La verdad es para pasar de ".a" a ".lib" sí que he visto algo, se puede hacer con las utilidades que trae el Mingw, y era algo de crear el ".def" y a partir de éste se podía hacer, pero para hacerlo a la inversa no he encontrado nada. Bueno, te haré caso y probaré con otro compilador, muchas gracias.

luis1980 28-11-2011 09:27:12

corrección
 
Perdón, quería decir en mi mensaje anterior que he encontrado para pasar de ".lib" a ".a", no al contrario.
Saludos


La franja horaria es GMT +2. Ahora son las 07:15:36.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi