Ver Mensaje Individual
  #4  
Antiguo 27-11-2011
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Reputación: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
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.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita