11

ZMQ::LibZMQ3 をイチゴの perl にインストールしようとしていますが、このモジュールのインストール中に以下のエラー メッセージが表示されます。zmq ライブラリとインクルードは 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モジュールをWindowsにインストールすることは可能ですか?もしそうなら、誰かがここで何が問題なのかを助けることができますか?

4

3 に答える 3

4

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 バインディングには 3.3 が必要なため、これは失敗します)

それがあなたにとってもうまくいくことを願っています。

于 2013-03-03T08:59:07.603 に答える
3

Strawberry Perl または ActiveState Perl を使用していますか? nmakeActive State Perl は、MinGW ユーティリティを取得してインストールしていない限り、CPAN からのインストールで問題が発生する可能性があります。私はこれについて心配しています:

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)

うーん..最初にこれらの環境変数を設定する必要があります。

次に、 Can't link/include C library 'zmq', aborting を取得しました。これはassertMakefile の からのものです。Githubでこの問題を見つけました。と言いました:

ああ、いいポインタだ。pthread_create の問題。私の perl は、スレッドをサポートしてコンパイルされました。perl を再コンパイルしたところ、その問題はなくなりました。

そうです、Strawberry Perl はスレッド サポート付きでコンパイルされています。そして、私はそれを再コンパイルしていません。

私がお勧めするのは次のとおりです。

  • 名前にスペースを含まないディレクトリに ZMQ をインストールします。直下に設置しましたC:\ZeroMQ-3.2.2
  • これらの環境変数を定義します。私は Makefile.PL を見ましたが、それにはZMQ_LIBSandが必要ZMQ_INCLUDESです。
  • ActiveState ではなく Strawberry Perl のみを使用していることを確認してください。ActiveState を使用できますが、このようなものには少し調整が必要です。
  • そのデバッグ フラグを Makefile.PL に追加します (つまり、コマンド ラインからdebug => 1実行する Makefile インストールの手動の方法を実行する必要があります。perl Makefile.PL

これが機能するかどうかを確認するために、スレッドのサポートなしで Perl をダウンロードして再コンパイルするつもりはありません。でも、正しい道にあなたを送ったと思います。

于 2013-03-04T23:54:39.460 に答える
2

このパッケージは、私のActiveState Perl Windowsベースのマシンにはインストールされません-一部のZMQパッケージはインストールされますが、Windows/Perlでのサポートはせいぜい制限されているようです。

次のページを参照してください: https ://github.com/lestrrat/p5-ZMQ/issues/14StrawberryPerl には既知の問題があるようです。

これを追加するのは嫌いですが(Pythonは好きではありません)、Python2.7を使用するWindowsでは機能するようです。クイックインストールを実行し、含まれているテストを実行しただけで、合格しました。ドキュメントによると、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.
于 2013-03-03T03:17:21.620 に答える