Как добавить поддержку PPC/PPC64 обратно в Xcode 4.2 под Lion?
У меня есть система Lion (10.7.1), на которой я установил Xcode 4.2. Предположим, что у меня есть простая программа C helloWorld.c
следующим образом:
#include <stdio.h>
main() {
printf("hello, world\n");
}
Используя эту настройку, я хотел бы попытаться скомпилировать helloWorld.c
для использования в архитектуре PPC и PPC64, например:
$ gcc -arch ppc helloWorld.c -o helloWorld
Появится следующее сообщение об ошибке:
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
Как восстановить поддержку PowerPC для моей установки Xcode 4?
Я пробовал инструкции, описанные в в этом предыдущем сообщении о переполнении стека, но эти инструкции не работают для моей установки Lion.
Я использую установщик Xcode 3.2.6, расположенный на веб-сайте Apple dev.
Из символических ссылок я подозреваю, что эти инструкции работают для установки 10.6, но не 10.7.
В любом случае, некоторые исходные файлы и каталоги из установки Xcode 3.2.6 не существуют для создания символических ссылок или находятся в другом месте установки Xcode 3. (Например, нет директории /Xcode3/usr/bin
, из которой можно связать двоичный файл as
.)
Кому-нибудь повезло с компиляцией бинарных файлов PPC и PPC64 из системы Lion?
Чтобы получить награду, напишите достаточно подробный ответ. Для себя, но и для потомков.:)
EDIT - 31 августа 2011
Итак, я попробовал модификации, на которые указал Лоран, и пошел дальше, но этого было недостаточно, чтобы поддерживать работу PPC.
Я добавил символические ссылки, чтобы помочь gcc
найти необходимые ресурсы:
$ 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
Когда я попытался скомпилировать тестовое приложение, у меня появилось много ошибок:
$ 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
Возможно, есть варианты компиляции, которые я должен добавить, чтобы указать на заголовки Xcode3, но я смотрю в /Xcode3/usr/include
, и там действительно не так много.
Ответы
Ответ 1
Если вы выполняете классическую установку Xcode 3.2.6 на Lion, набор инструментов Xcode отключается и не устанавливается. Поэтому Xcode3/usr/bin
не существует.
Я предлагаю вам прочитать следующие сообщения (прочитайте их оба, прежде чем идти дальше). Они описывают трюк, чтобы обмануть установщика в установке всего.
Затем вы можете применить трюк из записи SO для восстановления поддержки PPC в Xcode.
Примечание. Я не тестировал вышеописанные шаги, но я буду рад услышать ваши отзывы об этом. Надеюсь, что это поможет.
Редактировать 04 сен. 2011: мне удалось получить руки на машине Lion, чтобы провести некоторые эксперименты и получить некоторые результаты. Я собрал их в своем блоге.