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 на окна, и если да, возможно, кто-то может помочь, что может быть проблемой здесь?
Ответы
Ответ 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.