¿Hay alguna forma de convertir la biblioteca COFF (archivo lib) a la biblioteca OMF para usar con C++ Builder6? Este coff no es solo una biblioteca de importación, sino que contiene algún código. Cuando trato de convertirlo usando coff2omf.exe de borland, obtengo un archivo de 1 KB del archivo de 15 KB.Conversión de archivo COFF lib al formato OMF
Respuesta
Es bastante típico que un archivo de objeto OMF sea un lote más pequeño que un objeto COFF equivalente, por lo que lo que está obteniendo puede ser válido.
Si ve que realmente no lo es, probablemente pueda descomponer el archivo lib en archivos de objetos individuales, desensamblar los archivos de objetos, volver a ensamblarlos en archivos de objeto OMF y juntarlos en un archivo OMF lib.
Esto es bastante tarde, pero si alguien está buscando una respuesta, puede consultar COFFIMPLIB de DigitalMars. COFF2OMF está disponible en el mismo sitio, pero parece que es más antiguo.
En lugar de convertidor de DigitalMars, es posible utilizar el convertidor de archivos objeto disponible en http://agner.org/optimize
Esta utilidad se puede utilizar para convertir archivos de objetos entre COFF/PE, OMF, ELF y formatos de Mach-O para todas las plataformas x86 de 32 bits y 64 bits. Puede modificar nombres de símbolos en archivos de objetos. Puede construir, modificar y convertir las bibliotecas de funciones en todas las plataformas. Puede volcar archivos de objetos y archivos ejecutables . También incluye un desensamblador muy bueno que admite los conjuntos de instrucciones SSE4, AVX, AVX2, FMA y XOP. Código fuente incluido (GPL).
Este es un gran sitio para la optimización de bajo nivel, y hay una gran cantidad de información útil en el associated manual pdf file, sobre los formatos de la biblioteca a través de varias plataformas.
La integración de Delphi (omf) y Ada (gcc, coff) requirió mucho esfuerzo hasta que dejé de hacerlo en un solo exe.
Honestamente traté de desintegrar gcc rtl y ada rtl .a (bibliotecas coff) en lotes de .o (objetos), convertirlos a través de coff2omf (había DMD coff2omf y iirc otro convobj más o menos). Algunos de los coff .o no se convirtieron en .obj, por lo que no puedo decir si fue una manera confiable en absoluto.
La conversión a nivel de ensamblador no es tan simple cuando se trata de excepciones y otros detalles profundos.
Es una lástima que no he probado una herramienta llamada ftp://ftp.styx.cabel.net/pub/UniLink/
No es obvio, pero probablemente UniLink se puede utilizar para lograr el objetivo. Uno de sus objetivos es el paquete C++ Builder (tanto dinámico como estático). unilink -Tpp-GI debería hacer el truco
Puede valer la pena notar que en las versiones más nuevas de Delphi (> = XE2), el compilador acepta COFF al igual que OMF. Probablemente también sea cierto para C++ Builder. Los compiladores de 64 bits usan solo COFF. Consulte here para obtener más información sobre la vinculación de COFF.
- 1. ¿Cuál es la diferencia entre el formato OMF y COFF?
- 2. Windows precompilado OMF BLAS/LAPACK?
- 3. Python lib para leer un archivo swf de formato Flash
- 4. Fallo durante la conversión a COFF: archivo no válido o está dañado
- 5. archivo 'lib' no encontrado al instalar rieles
- 6. Conversión de un seguimiento PCAP al formato NetFlow
- 7. Conversión de formato de audio
- 8. La conversión de una fecha normal al formato ISO-8601
- 9. formato de conversión usando Java
- 10. Añadir fila al archivo csv Ruby 1.9 CSV lib
- 11. COFF en Linux o ELF en Windows
- 12. Conversión de archivo binario a cadena Base64
- 13. Archivo .lib no creado (VS2008)
- 14. Conversión de Android a formato ordinal
- 15. conversión de archivos- .mwb a .sql archivo
- 16. Al compilar un archivo DLL, ¿el archivo LIB generado contiene el nombre de la DLL?
- 17. Biblioteca estática (.lib) al proyecto de Python
- 18. Instalación de raíles: "Archivo no encontrado: lib"
- 19. conversión de formato de una imagen en python
- 20. Fortran formato de archivo sin formato
- 21. La conversión APK al JAR
- 22. Formato de archivo SVGZ
- 23. Conexión de depuración Eclipse CDT al proceso - no en formato ejecutable: Formato de archivo no reconocido
- 24. php formato de 12 hr a formato de 24hr tiempo de conversión
- 25. perlbrew y local :: lib al mismo tiempo?
- 26. Convertir archivo lib + header a DLL
- 27. Agregar archivo Jar a WEB-INF/lib
- 28. creando el archivo .lib en Visual Studio
- 29. Conversión de archivo XSD a UML Modelo
- 30. Conversión del formato de hora a numérico con R
Gracias por su respuesta. ¿Puede recomendarme las herramientas que puedo usar para desensamblar los archivos COFF obj y luego volver a ensamblarlos en los archivos obj de OMF? – CITBL
Suponiendo que se ejecuta en Windows, puede desmontar un objeto COFF con 'dumpbin/disasm the_file.obj'. Eso produce una salida que está lista para MASM, aunque tendrá que quitar algunas columnas adicionales que incluye. Si no le importa gastar algo de dinero, * IDA Pro * producirá resultados listos para enviar a MASM directamente. De cualquier manera, probablemente haré el montaje con MASM. –
Jerry, ¿podría proporcionar algunos ejemplos de los comandos para ejecutar MASM? Estoy intentando hacer esto, y no estoy seguro de cómo invocar MASM (o qué columnas deben eliminarse del resultado 'dumpbin'). –