2009-10-20 2 views
6

При создании модуля Perl ExtUtils :: MakeMaker использует флаги, определенные в Config.pm (см. Perldoc Config) для таких значений, как ccflags и ldflags.Как переопределить флаги компиляции perl при создании модулей?

Как переопределить значения тезисов (без редактирования Makefile.PL)?

perl Makefile.PL ldflags=<options> 

, похоже, не работает.

Контекст: Я пытаюсь скомпилировать термин :: Readline :: Gnu on OS X 10.6. По умолчанию OS X perl является универсальным двоичным кодом и, следовательно, имеет ccflags как -arch i386 -arch ppc и т. Д.
С другой стороны, моя версия Gnu Readline (6.0) была скомпилирована из исходного кода только для -arch i386. Таким образом, он не содержит ожидаемых символов для модуля, пытающегося связать его с помощью -arch ppc.

+0

Попробуйте задать этот вопрос в списке рассылки МНЕС: http://www.perlfoundation.org/perl5/index.cgi?extutils_makemaker –

ответ

2

В общем, попытка переопределения настроек в Config.pm - это бесполезное упражнение. Более обычной причиной для их изменения является изменение компилятора на машине, где Perl был скомпилирован с компилятором, отличным от GNU, но вы хотите использовать GCC. Это настолько сложно сделать, что намного проще перестроить Perl с выбранным вами компилятором, установить все вспомогательные модули, а затем использовать сборку выбранного вами нового модуля, а не пытаться бороться с «системой».

Таким образом, вы можете сделать одну из двух вещей: постройте свою библиотеку GNU Readline с теми же параметрами, которые использует Perl, или создайте свой Perl с параметрами, используемыми для создания GNU Readline. Попытка сгибать один, чтобы встретить другого, не рекомендуется, если вы цените свою машину и волосы на голове (пожалуйста, не ударяйте по машине, которая сильно - это программное обеспечение, с которым вам нужно расстраиваться, а не аппаратное обеспечение; !).

Из двух вариантов восстановление GNU Readline, вероятно, проще - оно меньше и имеет меньше дополнений.

0

Информация, содержащаяся в разделе документации, может быть уместна, хотя я ее не пробовал.

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