Pregunta

Estoy teniendo un binario libfoo.a biblioteca estática compilado para máquina Linux de 32 bits. Deseo compilarlo en contra de mi proyecto Win32 compilado con cygwin.

¿Es posible? Parece ser posible, ya que todos los archivos de objetos en el archivo debe estar en el formato estándar ELF.

Sin embargo sigo recibiendo errores de enlace acerca de las funciones que se encuentra en la nm libfoo.a. Cuando creé un trozo libfoo.a con algunas funciones vacías con los mismos nombres de los de libfoo.a, yo no recibo vincular errores sobre esas funciones por más tiempo.

¿Es eso posible o me estoy perdiendo algo? En cualquier caso, ¿cómo puedo solucionar este problema?

¿Fue útil?

Solución

Incluso si usted tiene éxito en la vinculación que no se evite la incompatibilidad de código incorporado en diferentes plataformas. Por ejemplo, las cabeceras (glibc y otros) son diferentes allí. Para garantizar la compatibilidad mecanismos adicionales similares a mangling parecen ser utilizado en símbolos exportados por los ficheros objeto.

He conocido a un problema similar al suyo, cuando trató de enlazar ficheros objeto juntos compilados para la arquitectura de procesador diferente -. Nm mostró todas las funciones necesarias están presentes, pero enlazador no creía que

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top