Pregunta

Digamos que creé un archivo de objeto de un hello.c en una computadora x86 , luego envié ese archivo a una computadora brazo .¿Sería capaz de construir un archivo ejecutable del archivo de objeto recibido?Suponiendo que estamos usando gcc.


Nota:

Soy consciente de la compilación cruzada como un método conocido para básicamente el mismo resultado final, pero fue curioso de este escenario específico.

También estoy al tanto de esto Pregunta , pero quería enfatizar principalmenteDiferentes arquitecturas de CPU y el mismo compilador, ya que no encontré los puntos claros con mi entendimiento modesto.

¿Fue útil?

Solución

No hay estándar para lo que contiene un archivo de objeto.Algunos pueden contener instrucciones de la máquina ya, otras pueden ser independientes de la plataforma.Entonces, si es así, depende de su compilador específico y, por lo tanto, se convierta en una pregunta específica de la aplicación.

Por ejemplo, la elf -ader contiene información sobre la CPU y ABI el binario fue compilado porY esto lamentablemente finaliza la discusión.

Otros consejos

¡Puedes confiar en que no funcionará!Simplemente nunca puede ejecutar el código X86 en una CPU del brazo.Esto es independiente de cualquier información meta que se coloca en el archivo de objeto como en elfo.El archivo de objeto contiene código ejecutable y una CPU de ARM nunca puede ejecutar un binario creado para una CPU diferente.

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