Подтвердить что ты не робот

ZMQ:: LibZMQ3 и клубника perl

Я пытаюсь установить ZMQ:: LibZMQ3 на strawberry perl, но получить ниже сообщение об ошибке во время установки этого модуля также мои zmq libs и include находятся в C:\Program Files\ZeroMQ 3.2.2:

cpan> install ZMQ::LibZMQ3

Running install for module 'ZMQ::LibZMQ3'
Running make for D/DM/DMAKI/ZMQ-LibZMQ3-1.09.tar.gz
Checksum for C:\strawberry\cpan\sources\authors\id\D\DM\DMAKI\ZMQ-LibZMQ3-1.09.tar.gz ok
Scanning cache C:\strawberry\cpan\build for sizes
............................................................................DONE

  CPAN.pm: Building D/DM/DMAKI/ZMQ-LibZMQ3-1.09.tar.gz

Cannot determine perl version info from lib/ZMQ/LibZMQ3.pm
Probing environment variables:
Probing libzmq via pkg-config ...
'pkg-config' is not recognized as an internal or external command,
operable program or batch file.
 - No libzmq found...
Probing zeromq3 via pkg-config ...
'pkg-config' is not recognized as an internal or external command,
operable program or batch file.
 - No zeromq3 found...
Detected the following ZMQ settings:
 + ZMQ_HOME = "C:\Program Files\ZeroMQ 3.2.2"
 + ZMQ_H = "C:\Program Files\ZeroMQ 3.2.2\include\zmq.h"
 + ZMQ_INCLUDES = "C:\Program Files\ZeroMQ 3.2.2\include"
 + ZMQ_LIBS = "C:\Program Files\ZeroMQ 3.2.2\lib"
 + ZMQ_TRACE = (null)
Can't link/include C library 'zmq.h', 'zmq', aborting.
Warning: No success on command[C:\strawberry\perl\bin\perl.exe Makefile.PL]
  DMAKI/ZMQ-LibZMQ3-1.09.tar.gz
  C:\strawberry\perl\bin\perl.exe Makefile.PL -- NOT OK
Running make test
  Make had some problems, won't test
Running make install
  Make had some problems, won't install
Stopping: 'install' failed for 'ZMQ::LibZMQ3'.
Failed during this command:
 DMAKI/ZMQ-LibZMQ3-1.09.tar.gz                : writemakefile NO 'C:\strawberry\perl\bin\perl.exe Ma
kefile.PL' returned status 512

Можно ли установить этот модуль cpan на окна, и если да, возможно, кто-то может помочь, что может быть проблемой здесь?

4b9b3361

Ответ 1

Я просто попробовал это в своей среде ActiveStatePerl.

Сначала я получил те же результаты, но потом переименовал свою установку ZMQ и удалили пробелы.

(От C:\App\ZeroMQ 2.2.0 до C:\App\ZeroMQ2_2_0.)

+ ZMQ_HOME = C:\App\ZeroMQ2_2_0
+ ZMQ_H = C:\App\ZeroMQ2_2_0\include\zmq.h
+ ZMQ_INCLUDES = C:\App\ZeroMQ2_2_0\include
+ ZMQ_LIBS = C:\App\ZeroMQ2_2_0\lib
+ ZMQ_TRACE = (null)

Итак, я прошел проблему

Can't link/include C library 'zmq.h', 'zmq', aborting.

и получил следующий шаг в Makefile.PL

Detecting zmq version...

(Это не работает в моей системе, потому что у меня есть 0mq 2.2.0, а perl-binding - 3.3)

Надеюсь, что это сработает и для вас.

Ответ 2

Используете ли вы Strawberry Perl или ActiveState Perl? В Active State Perl могут возникнуть проблемы с установкой из CPAN, если у вас нет nmake и установлены утилиты MinGW. Меня это беспокоит:

Probing libzmq via pkg-config ...
'pkg-config' is not recognized as an internal or external command,
operable program or batch file.

Это вызывает большие красные флаги для меня. Я также заметил эту небольшую мелочь, когда я попытался установить:

Detected the following ZMQ settings:
 + ZMQ_HOME = (null)
 + ZMQ_H = (null)
 + ZMQ_INCLUDES = (null)
 + ZMQ_LIBS = (null)
 + ZMQ_TRACE = (null)

Хм.. Я должен сначала установить эти переменные среды.

Затем я получил Не могу ссылку/включить C-библиотеку 'zmq', прерывание. который находится в assert в файле Makefile. Я нашел эту проблему на Github. Он сказал:

Ахх хороший указатель. Проблема pthread_create. Мой perl был скомпилирован с поддержкой потоков. Я перекомпилировал perl и эта проблема исчезла.

Um yes, Strawberry Perl скомпилирован с поддержкой потоков. И я не перекомпилирую его.

Я рекомендую следующее:

  • Установите ZMQ в каталог без пробелов в имени. Я установил его непосредственно под C:\ZeroMQ-3.2.2.
  • Определите эти переменные среды. Я посмотрел на Makefile.PL и ему нужны ZMQ_LIBS и ZMQ_INCLUDES.
  • Убедитесь, что вы используете только Strawberry Perl, а не ActiveState. Вы можете использовать ActiveState, но для этого нужно немного подкорректировать.
  • Добавьте флаг Debug debug => 1 в Makefile.PL(это означает, что вам нужно выполнить ручной метод установки Makefile, где вы запускаете perl Makefile.PL из командной строки.

Я не собираюсь скачивать и перекомпилировать Perl без поддержки потоков, чтобы увидеть, будет ли это работать. Надеюсь, я отправил вас на правильный путь.

Ответ 3

Этот пакет не будет установлен на моем Windows-машине ActiveState Perl, хотя некоторые из пакетов ZMQ будут. Кажется, поддержка под Windows/Perl в лучшем случае ограничена.

Смотрите эту страницу: https://github.com/lestrrat/p5-ZMQ/issues/14 Поскольку, похоже, известны проблемы с Strawberry Perl.

Не хочу добавлять это (не нравится Python), но он работает, работая под Windows с Python 2.7. Просто сделал быструю установку и выполнил включенные тесты, которые прошли. В документах также говорится, что Java хорошо работает и под Windows.

Если ваш 64-разрядный бит может помочь (от laufeyjarson):

A work-around is to change $^I to have a backup. I used ~ like gvim does:

Line 100 of Makefile.PL:
local $^I = '~';
EDIT:  On recent versions, it is line 203 - JimB

That lets the Makefile.PL work.