2009-07-19 18 views
5

Me gustaría saber cómo puede admitir arquitecturas i386 y ppc para programas en/bin.¿Cómo soportan los programas i386 y ppc al mismo tiempo?

corro por ejemplo

bin $ file amber 

me sale

amber: setgid Mach-O universal binary with 2 architectures 
amber (for architecture i386): Mach-O executable i386 
amber (for architecture ppc): Mach-O executable ppc 

¿Cómo apoyan los programas de i386 y PPC en el código fuente?

En otras palabras, qué componentes puede eliminar, por ejemplo, en/bin/ámbar si elimina el soporte de ppc -architecture?

+0

¡Gracias por tus respuestas! –

Respuesta

10

Se llama Universal binary. En resumen, el ejecutable contiene ambos tipos de código ejecutable. Apple tiene un published document que describe cómo los desarrolladores deben construir sus aplicaciones para que se ejecuten en cualquiera de las plataformas.

El ejecutable lipo se puede utilizar para eliminar cualquier versión del archivo ejecutable del archivo. Si desea que sus ejecutables contengan solo una versión, puede usar lipo para lograr esto.

Tenga en cuenta que hay mucho más que ppc y i386, aunque estas son las arquitecturas "más seguras" para elegir para un binario Universal. Lea la página de manual para arch; allí puede ver que es probable que un binario OSX moderno contenga cualquiera de ppc, ppc64, i386 o x86_64. Hay muchos más en la lista, pero existen allí para completar.

5

Se llama fat binary.

Hay una copia del código nativo para ambas arquitecturas en el binario. El formato binario y el sistema operativo tienen que ser compatibles, por lo que puede saber dónde buscar en el archivo el código correcto.

Cuestiones relacionadas