Ho un sistema Lion (10.7.1) su cui ho installato Xcode 4.2. Supponiamo di avere un semplice programma C helloWorld.c
come segue:Come posso aggiungere il supporto PPC/PPC64 a Xcode 4.2 in Lion?
#include <stdio.h>
main() {
printf("hello, world\n");
}
Usando questa configurazione, desidero provare a compilare helloWorld.c
per l'uso su PPC e PPC64, esempio:
$ gcc -arch ppc helloWorld.c -o helloWorld
Questo dà il seguente messaggio di errore:
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
Come faccio a ripristinare il supporto per PowerPC alla mia installazione Xcode 4?
Ho provato le istruzioni delineate in this previous Stack Overflow post, ma queste istruzioni non funzionano per l'installazione di Lion.
Sto usando il Xcode 3.2.6 installer located on Apple's dev site.
Dai collegamenti simbolici, ho il sospetto che quelle istruzioni funzionino per un'installazione 10.6, ma non 10.7.
In ogni caso, alcuni dei file di origine e delle directory dall'installazione di Xcode 3.2.6 non esistono per creare collegamenti simbolici o si trovano altrove nell'installazione di Xcode 3. (Ad esempio, non esiste una directory /Xcode3/usr/bin
da cui collegare il binario as
.)
Qualcuno ha avuto fortuna con la compilazione di binari PPC e PPC64 da un sistema Lion?
Per ricevere il premio, si prega di scrivere una risposta ragionevolmente dettagliata. Per me stesso, ma anche per i posteri. :)
EDIT al 31 Ago - 2011
Così ho provato le modifiche che Laurent indicò e ricevuti più avanti, ma questo non è stato sufficiente per ottenere il supporto PPC di lavoro.
ho aggiunto i link simbolici per cercare di aiutare gcc
lungo nel trovare le risorse di cui ha bisogno:
$ 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
Quando ho provato a compilare la mia applicazione di test, ho un sacco di errori:
$ 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
Forse ci sono delle opzioni di compilazione che dovrei aggiungere al punto delle intestazioni Xcode3, ma sto cercando in /Xcode3/usr/include
e non c'è davvero molto lì.
Si può provare a specificare l'SDK di base e/o la versione GCC ("-sdk /Developer/SDKs/MacOSX10.5.sdk", "GCC_VERSION = 4.2") sulla riga di comando? Ciò imporrà l'uso di GCC al posto del bridge LLVM/GCC. –
Sto usando la riga di comando. Specificare 'export GCC_VERSION = 4.2; gcc -arch ppc -sdk /Developer/SDKs/MacOSX10.5.sdk helloWorld.c -o helloWorld' restituisce lo stesso errore. –
Errore mio, GCC_VERSION = 4.2 funziona solo quando si utilizza xcodebuild. Puoi provare a specificare esplicitamente il compilatore CC = gcc-4.2 o CC =/usr/bin/gcc-4.2? –