2011-08-21 9 views
15

Tengo un sistema Lion (10.7.1) en el que instalé Xcode 4.2. Supongamos que tengo un programa simple en C helloWorld.c de la siguiente manera:¿Cómo agrego la compatibilidad PPC/PPC64 a Xcode 4.2 bajo Lion?

#include <stdio.h> 
main() { 
    printf("hello, world\n"); 
} 

Usando esta configuración, me gustaría tratar de compilar helloWorld.c para su uso en la PPC y PPC64 arquitecturas, por ejemplo :

$ gcc -arch ppc helloWorld.c -o helloWorld 

Esto da el siguiente mensaje de error:

llvm-gcc-4.2: error trying to exec '/usr/bin/../llvm-gcc-4.2/bin/powerpc-apple-darwin11-llvm-gcc-4.2': execvp: No such file or directory 

¿Cómo se recuperan soporte para PowerPC a mi instalación de Xcode 4?

He intentado con las instrucciones descritas en this previous Stack Overflow post, pero estas instrucciones no funcionan para mi instalación de Lion.

Estoy usando el Xcode 3.2.6 installer located on Apple's dev site.

De los enlaces simbólicos, sospecho que esas instrucciones funcionan para una instalación 10.6, pero no 10.7.

En cualquier caso, algunos de los archivos y directorios fuente de la instalación de Xcode 3.2.6 no existen para crear enlaces simbólicos, o se encuentran en otro lugar de la instalación de Xcode 3. (Por ejemplo, no hay /Xcode3/usr/bin directorio desde el que vincular el binario as.)

Alguien ha tenido suerte con la compilación de PPC y PPC64 binarios de un sistema de León?

Para recibir la recompensa, por favor, escriba una respuesta razonablemente detallada. Para mí, pero también para la posteridad. :)

EDITAR - Aug 31 2011

Así que trató las modificaciones que Laurent apuntada y ya ha recibido más adelante, pero esto no fue suficiente para conseguir el apoyo de PPC de trabajo.

he añadido enlaces simbólicos para tratar de ayudar gcc adelante en la búsqueda de los recursos que necesita:

$ sudo ln -s /Xcode3/usr/llvm-gcc-4.2/bin/powerpc-apple-darwin10-llvm-gcc-4.2 /usr/llvm-gcc-4.2/bin/powerpc-apple-darwin10-llvm-gcc-4.2 
$ sudo ln -s /Xcode3/usr/llvm-gcc-4.2/bin/powerpc-apple-darwin10-llvm-g++-4.2 /usr/llvm-gcc-4.2/bin/powerpc-apple-darwin10-llvm-g++-4.2 
$ sudo ln -s /Xcode3/usr/llvm-gcc-4.2/bin/powerpc-apple-darwin10-llvm-gcc-4.2 /usr/llvm-gcc-4.2/bin/powerpc-apple-darwin11-llvm-gcc-4.2 
$ sudo ln -s /Xcode3/usr/llvm-gcc-4.2/bin/powerpc-apple-darwin10-llvm-g++-4.2 /usr/llvm-gcc-4.2/bin/powerpc-apple-darwin11-llvm-g++-4.2 

Cuando intenté compilar mi aplicación de prueba, consigo una gran cantidad de errores:

$ gcc -arch ppc helloWorld.c -o helloWorld 
powerpc-apple-darwin11-llvm-gcc-4.2: 2: No such file or directory 
In file included from /usr/include/stdio.h:64, 
       from helloWorld.c:1: 
/usr/include/sys/cdefs.h:540:4: error: #error Unknown architecture 
In file included from /usr/include/sys/_types.h:33, 
       from /usr/include/_types.h:27, 
       from /usr/include/stdio.h:67, 
       from helloWorld.c:1: 
/usr/include/machine/_types.h:36:2: error: #error architecture not supported 
In file included from /usr/include/_types.h:27, 
       from /usr/include/stdio.h:67, 
       from helloWorld.c:1: 
/usr/include/sys/_types.h:94: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_blkcnt_t’ 
/usr/include/sys/_types.h:95: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_blksize_t’ 
/usr/include/sys/_types.h:96: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_dev_t’ 
/usr/include/sys/_types.h:99: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_gid_t’ 
/usr/include/sys/_types.h:100: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_id_t’ 
/usr/include/sys/_types.h:101: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_ino64_t’ 
/usr/include/sys/_types.h:103: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_ino_t’ 
/usr/include/sys/_types.h:107: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_mach_port_name_t’ 
/usr/include/sys/_types.h:108: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_mach_port_t’ 
/usr/include/sys/_types.h:109: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_mode_t’ 
/usr/include/sys/_types.h:110: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_off_t’ 
/usr/include/sys/_types.h:111: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_pid_t’ 
/usr/include/sys/_types.h:131: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_sigset_t’ 
/usr/include/sys/_types.h:132: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_suseconds_t’ 
/usr/include/sys/_types.h:133: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_uid_t’ 
/usr/include/sys/_types.h:134: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_useconds_t’ 
... 
/usr/include/secure/_stdio.h:62: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__DARWIN_LDBL_COMPAT’ 
/usr/include/secure/_stdio.h:67: error: expected declaration specifiers or ‘...’ before ‘size_t’ 
/usr/include/secure/_stdio.h:67: error: expected declaration specifiers or ‘...’ before ‘size_t’ 
/usr/include/secure/_stdio.h:68: error: expected declaration specifiers or ‘...’ before ‘va_list’ 
/usr/include/secure/_stdio.h:69: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__DARWIN_LDBL_COMPAT’ 
helloWorld.c:3: error: expected declaration specifiers before ‘main’ 
helloWorld.c:5: error: old-style parameter declarations in prototyped function definition 
/usr/include/stdio.h:252: error: parameter name omitted 
/usr/include/stdio.h:252: error: parameter name omitted 
helloWorld.c:5: error: expected ‘{’ at end of input 

Quizás haya opciones de compilación que debería agregar para apuntar a los encabezados de Xcode3, pero estoy buscando en /Xcode3/usr/include y no hay mucho allí.

+0

¿Puede tratar de especificar el SDK base y/o la versión de GCC ("-sdk /Developer/SDKs/MacOSX10.5.sdk", "GCC_VERSION = 4.2") en la línea de comandos? Esto forzará el uso de GCC en lugar del puente LLVM/GCC. –

+0

Estoy usando la línea de comando. Especificando 'export GCC_VERSION = 4.2; gcc -arch ppc -sdk /Developer/SDKs/MacOSX10.5.sdk helloWorld.c -o helloWorld' produce el mismo error. –

+0

Mi error, GCC_VERSION = 4.2 solo funciona cuando se usa xcodebuild. ¿Puedes tratar de especificar explícitamente el compilador CC = gcc-4.2 o CC =/usr/bin/gcc-4.2? –

Respuesta

9

Si realiza una instalación clásica de Xcode 3.2.6 en Lion, el conjunto de herramientas Xcode está deshabilitado y no está instalado. Es por eso que el Xcode3/usr/bin no existe.

Le sugiero que lea las siguientes publicaciones (léalas antes de seguir adelante). Describen un truco para engañar al instalador para que instale todo.

A continuación, se puede aplicar the trick from the SO entry para restaurar el apoyo de PPC en Xcode.

Nota: No he probado los pasos anteriores, pero estaré encantado de escuchar sus comentarios al respecto. Espero eso ayude.

Editar 04 sep. 2011: He logrado poner mis manos en una máquina Lion para hacer algunos experimentos y obtener algunos resultados. Los he reunido on my blog.

+0

Esto parece prometedor. Haré un seguimiento si descubro algo. –

+1

Solo para dar seguimiento, llegué más lejos que antes, aunque finalmente no funcionó. ¡Gracias, sin embargo! –

+0

He hecho algunos experimentos y obtuve algunos resultados. Ver la edición de mi respuesta. –

Cuestiones relacionadas