Попытка установить YAML::Syck - для этого модуля требуется компилятор C

Я пытаюсь установить модуль YAML::Syck (на самом деле я пытаюсь установить Date::Manip, это просто зависимость), но это не удается со следующим сообщением:

This module requires a C compiler at Makefile.PL line 38.

Это происходит независимо от того, пытаюсь ли я установить с помощью CPAN или пытаюсь загрузить пакеты и установить их вручную.

У меня установлен gcc, и в моем PATH я могу получить к нему доступ из того же окна оболочки CYGWIN, которое я пытаюсь использовать для установки YAML:: Syck.


person Edward Shtern    schedule 14.04.2011    source источник


Ответы (3)


При поиске компилятора C ExtUtils::MakeMaker и Module::Build не обязательно искать gcc в вашем PATH, но запросите в конфигурации вашего perl компилятор C, с помощью которого он был собран, и ожидайте, что он также будет доступен для создания расширений Perl.

В моей системе он будет искать cc в PATH, согласно

$ perl -MConfig -E'say $Config{cc}'
cc
person rafl    schedule 14.04.2011
comment
с/не ищи/не обязательно ищи/ - person ikegami; 14.04.2011
comment
Короче: perl -V:cc gcc-4 - person rurban; 03.04.2013

В прошлом у меня были проблемы с тем, чтобы все «просто работало» с cygwin, когда дело доходит до компиляции модулей. Вы можете взглянуть на Strawberry Perl, который представляет собой дистрибутив Windows Perl, который поставляется в комплекте со всеми необходимыми компонентами. для компиляции модулей XS. Я лично не пытался установить YAML::Syck с его помощью, но я без проблем установил много других модулей XS.

После того, как он установлен и находится на вашем пути (обычно автоматически), вы сможете запустить cpan из командной строки Windows, чтобы установить модуль.

person Eric Strom    schedule 14.04.2011

Говорит сопровождающий

Лучше всего задать вопрос в списке рассылки Cygwin. Там вы найдете одни и те же вопросы, которые задают снова и снова, мы можем указать на сообщения, и присутствуют сопровождающие. Качество ответов будет намного лучше. Последнее официальное объявление Perl было http://sourceware.org/ml/cygwin-announce/2012-07/msg00011.html

perl используется для объединения наиболее полезных модулей для CPAN и тестирования с ядром perl. В последнем пакете 5.14 полезные модули были перемещены в отдельный пакет perl_vendor. Зависимости для самостоятельной компиляции модулей через cpan не включены. Вам понадобятся как минимум make и gcc-4. См. /usr/share/doc/Cygwin/perl.README для получения сведений о конкретном пакете.

YAML::Syck считается неработающим и не поддерживается (*_why* осталось), попробуйте использовать лучший пакет YAML, например YAML или YAML::XS< /em>, написанный изобретателем и автором самого YAML (ingy). Date::Manip не требует YAML::Syck. cpan предпочитает модули YAML, но предпочитает YAML::XS.

Вы обнаружите, что с cygwin perl можно установить гораздо больше пакетов, чем с strawberry perl (=mingw).

person rurban    schedule 03.04.2013