Компиляция для процессоров Intel и PPC на OSX - PullRequest
0 голосов
/ 03 декабря 2009

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

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

Ответы [ 3 ]

2 голосов
/ 03 декабря 2009

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

2 голосов
/ 03 декабря 2009

Посмотрите на параметр -arch для gcc Apple docs

1 голос
/ 03 декабря 2009

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

...