2013-02-19 13 views
11

Próbuję zainstalować ZMQ :: LibZMQ3 na perl truskawkowym, ale otrzymam poniższy komunikat o błędzie podczas instalacji tego modułu, a moje biblioteki i biblioteki zmq znajdują się w C: \ Program Files \ ZeroMQ 3.2. 2:ZMQ :: LibZMQ3 i strawberry perl

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 

czy możliwe jest zainstalowanie tego modułu cpan na oknach, a jeśli tak, to czy ktoś mógłby pomóc, co może być problemem?

+1

Ha, cały twój przedstawiciel na nagrodę;) Nie jestem pewien, czy jest odpowiedni, ale wygląda na to, że się nie udało więcej niż tylko twój system: http://code.activestate.com/ppm/ZMQ-LibZMQ3/ – Qtax

Odpowiedz

2

Ten pakiet nie byłby instalowany na moim komputerze z ActiveState Perl Windows - chociaż niektóre pakiety ZMQ będą. Wygląda na to, że wsparcie w Windows/Perl jest w najlepszym wypadku ograniczone.

Zobacz tę stronę: https://github.com/lestrrat/p5-ZMQ/issues/14 Ponieważ wydaje się, że znane są problemy z Strawberry Perl.

Nienawidzę dodawać tego (nie lubię Pythona), ale wygląda na to, że działa pod Windows z Pythonem 2.7. Właśnie wykonałem szybką instalację i uruchomiłem dołączone testy, które przeszły. Dokumenty mówią też, że Java dobrze działa również pod Windowsem.

Jeśli nie 64-bitowy może pomóc (od 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. 
4

Właśnie próbowałem w moim otoczeniu ActiveStatePerl.

Najpierw uzyskałem takie same wyniki, ale zmieniłem nazwę na moją instalację ZMQ i usunąłem spacje.

(Z C:\App\ZeroMQ 2.2.0 do 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) 

Więc zdałem problem

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

i dostał kolejny krok w Makefile.PL

Detecting zmq version... 

(To nie działa na mój system, ponieważ mam 0mq 2.2.0, a perl-binding wymaga 3.3)

Nadzieja, która działa również dla Ciebie.

+0

Hmm, może powinienem dodać kilka oczywistych faktów. ;-) – smartmeta

3

Czy używasz Strawberry Perl lub ActiveState Perl? Aktywny Perl stanu może mieć problemy z instalacją z CPAN, chyba że masz nmake i zainstalowane narzędzia MinGW. Martwię się o to:

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

To budzi we mnie duże czerwone flagi. Zauważyłem także ten mały dźwięk podczas próby instalacji:

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

Hmm .. Muszę najpierw ustawić te zmienne środowiskowe.

Następnie mam Nie mogę połączyć/dołączyć biblioteki C "zmq", przerywanie. który jest z assert w pliku Makefile. Znalazłem ten problem na Github. To powiedział:

Ahhh ładny wskaźnik. pthread_create problem. Mój perl został skompilowany z obsługą wątków. Zrekompilowałem perl i ten problem zniknął.

Um tak, Strawberry Perl jest skompilowany z obsługą wątku. I, nie rekompiluję tego.

Co ja polecam to:

  • Install ZMQ w katalogu bez spacji w nazwie. Zainstalowałem go bezpośrednio pod numerem C:\ZeroMQ-3.2.2.
  • Zdefiniuj te zmienne środowiskowe. Spojrzałem na Makefile.PL i wymaga ZMQ_LIBS i ZMQ_INCLUDES.
  • Upewnij się, że używasz tylko Strawberry Perl, a nie ActiveState. Możesz użyć ActiveState, ale do czegoś takiego potrzeba trochę szczypania.
  • Dodaj tę flagę debug => 1 Debug w Makefile.PL (co oznacza, że ​​trzeba zrobić ręczną metodę Makefile zainstalować gdzie uruchomieniu perl Makefile.PL z wiersza poleceń.

ja nie zamierzam pobierać i zrekompiluj Perla bez obsługi wątków, aby sprawdzić, czy to zadziała, ale mam nadzieję, że wysłałem cię na poprawną ścieżkę:

Powiązane problemy