Создавая Универсальные расширения для Perl, Python и Ruby
С появлением процессора Intel семье Macintosh программное обеспечение должно компилироваться/соединяться для работы многократной архитектуры. В OS X v10.4 и предыдущий, расширения, созданные perl, python и ruby только обычно создавал бы для собственной архитектуры. В OS X v10.5 и позже, расширение создается универсальное по умолчанию, и это может быть настроено.
Содержание:
Создание Universal
Включая 64-разрядную архитектуру в настоящее время существует 4 архитектуры, которая может быть создана:
Имя архитектуры |
Описание |
|---|---|
i386 |
(32-разрядный) Intel |
PPC |
(32-разрядный) PowerPC |
ppc64 |
(64-разрядный) PowerPC |
x86_64 |
(64-разрядный) Intel |
Например, чтобы сказать компилятору и компоновщику создавать две 32-разрядной архитектуры (который является обычной установкой), следующие параметры командной строки использовались бы:
-arch i386 -arch ppc |
Создавая Perl, Python и расширения Ruby
Процесс здания perl, python и ruby расширения подобны этому на других платформах. Для perl, это смотрит что-то как:
% perl Makefile.PL |
% make |
% make install |
Для python, это смотрит что-то как:
% python setup.py install |
И для ruby:
% ruby extconf.rb |
% make |
% make install |
Все параметры компилятору и компоновщику автоматически сгенерированы, и так как большинство других операционных систем не имеет понятия многократной архитектуры, perl, python и ruby не знайте, как иметь дело с ними. Возможно вынудить дополнительные параметры архитектуры использоваться компилятором и компоновщиком, но это не симпатично.
Для perl, переопределение некоторой переменной Make-файла работает во многих случаях (хотя не единственный путь):
% perl Makefile.PL |
% make PASTHRU_INC='-arch i386 -arch ppc' LD='cc -arch i386 -arch ppc' |
% make install |
Аналогично, для python, это обычно работает:
% env CFLAGS='-arch i386 -arch ppc' LDFLAGS='-arch i386 -arch ppc' python setup.py install |
И для ruby:
% env CFLAGS='-arch i386 -arch ppc' LDFLAGS='-arch i386 -arch ppc' ruby extconf.rb |
% make |
% make install |
OS X v10.5 и позже
В OS X v10.5 и позже, значение по умолчанию для perl, python и ruby расширения должны создать две 32-разрядной архитектуры. В большинстве случаев это - то, что желаемо, таким образом, не будет никакого различия в процедурах сборки.
Однако в течение тех времен, когда различный набор архитектуры желаем, новая переменная окружения может использоваться для изменения этого. Например, для создания a perl расширение только для 32-разрядного PowerPC, можно использовать:
% env ARCHFLAGS='-arch ppc' perl Makefile.PL |
% make |
% make install |
или для python:
% env ARCHFLAGS='-arch ppc' python setup.py install |
или для ruby:
% env ARCHFLAGS='-arch ppc' ruby extconf.rb |
% make |
% make install |
Или, можно установить ARCHFLAGS переменная окружения глобально, и затем просто выполненный нормальные команды сборки/установки.
Copyright © 2015 Apple Inc Все права защищены. Условия использования | Политика конфиденциальности | обновленный: 31.10.2007