2009-12-03 3 views
0

У меня MacBook Pro с 64-разрядным процессором Intel Core 2 Duo, и я использую gcc (i686-apple-darwin9-gcc-4.0.1) для компиляции исполняемых файлов который я могу запустить нормально на своей машине. Недавно кто-то попытался запустить мое приложение на PowerBook G4 и получил ошибку «Bad CPU type in executable», которая, по моему мнению, связана с тем, что их процессор - это PPC, а не Intel (а также, возможно, 32-разрядный не 64-разрядный).Компиляция для процессоров Intel и PPC на OSX

Is возможно ли мне создать двоичные файлы, которые будут работать во всех различных архитектурах Mac, используя gcc, и если да, то какие параметры я использую?

ответ

2

Вы должны смотреть на «Универсальные Binaries» это имя, данное в файл приложения, который работает, без динамической перекомпиляции, на обоих ппц и i386 архитектур. Как вы знаете, файлы .app (исполняемые файлы Mac), на самом деле являются архивами, которые содержат внутри них фактическое двоичное приложение. Они могут быть разделены таким образом, чтобы содержались как двоичные файлы i386, так и ppc.

1

Чтобы спасти вас и ваших будущих головных болей, вы должны укусить пулю и настроить свой проект в Apple Xcode. Если вы следуете по умолчанию, Xcode может позаботиться обо всех деталях построения для нескольких архитектур, например, использовать соответствующие флаги -arch для gcc, используя правильные библиотеки SDK, совместимость с предыдущими версиями OS X и т. Д. И т. Д.

Смежные вопросы