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í.
¿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. –
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. –
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? –