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

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

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

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

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

Ответы [ 3 ]

8 голосов
/ 14 апреля 2011

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

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

$ perl -MConfig -E'say $Config{cc}'
cc
3 голосов
/ 14 апреля 2011

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

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

1 голос
/ 03 апреля 2013

ведущий говорящий

Лучшим форумом для обсуждения является список рассылки 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 для ознакомления с пакетом README.

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

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

...