Как добавить поддержку PPC / PPC64 обратно в Xcode 4.2 под Lion? - PullRequest
16 голосов
/ 21 августа 2011

У меня есть система 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 .

Из символических ссылок, я подозреваю, эти инструкции работают для установки 10.6, но не10,7.

В любом случае, некоторые из исходных файлов и каталогов из установки Xcode 3.2.6 не существуют для создания символических ссылок или расположены в других местах установки Xcode 3.(Например, нет каталога /Xcode3/usr/bin, из которого можно связать двоичный файл as.)

Кому-нибудь повезло с компиляцией двоичных файлов PPC и PPC64 из системы Lion?

Чтобы получить награду, пожалуйста, напишите достаточно подробный ответ.Для себя, но и для потомков.:)

РЕДАКТИРОВАТЬ - 31 августа 2011 г.

Итак, я попробовал модификации, на которые указывал Лоран, и продвинулся дальше, но этого было недостаточно, чтобы получить КППподдержка работает.

Я добавил символические ссылки, чтобы попытаться помочь 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 Ответ

9 голосов
/ 01 сентября 2011

Если вы выполняете классическую установку Xcode 3.2.6 на Lion, набор инструментов Xcode отключается и не устанавливается.Вот почему Xcode3/usr/bin не существует.

Я предлагаю вам прочитать следующие посты (прочитайте их оба, прежде чем идти дальше).Они описывают хитрость, чтобы обмануть установщик в установке всего.

Затем вы можете применить трюк из записи SO для восстановления поддержки PPC в Xcode.

Примечание: Я не проверял описанные выше шаги, но буду рад услышать ваши отзывы об этом.Надеюсь, это поможет.

Редактировать 04 сентября 2011 : Мне удалось взять в руки машину Lion, чтобы провести некоторые эксперименты и получить некоторые результаты.Я собрал их в своем блоге .

...