0

Perforceで変更を加えるためにperlプログラムを作成しようとしています。コマンド ラインから P4 を使用して Perforce コマンドを実行すると、正常に動作しますが、perl プログラムで「P4 を使用」と記述すると、P4 クラスを識別できません。不足している可能性のある構成はありますか?

PS> -コマンド ラインから正常に動作しているため、パスが正しく設定されていると想定しています。

これは私が得ているエラーです: perlP4.pl 行 5 で、パッケージ "P4" を介してオブジェクト メソッド "new" を見つけることができません (おそらく "P4" をロードするのを忘れましたか?)。

これは私のプログラムです:

use strict;
push ( @INC,"C:\Program Files\Perforce");
use lib "C:\Program Files\Perforce";
use P4; # a p4perl module
my $p4 = new P4;

どんな助けでも大歓迎です。

4

3 に答える 3

0

私はしばらく Perforce を使用していないので、ここでは古くなっている可能性があります。

P4 モジュールでは、Perforce C++ API ライブラリを使用する必要があり、P4 モジュールを使用してコンパイルされた C プログラミングがかなりあります。Windows では、これらの多くは既にコンパイルされています (Windows を使用しているようです)。

取り付け説明書をよく読んでください。API ライブラリと P4 モジュール (およびそのすべてのサブモジュール) がインストールされていることを確認してください。それuse P4;自体はエラーをスローしないので、P4 モジュールの Perl 部分がインストールされていると想定しています。問題は、P4 C++ API との通信です。

sub newサブルーチンはP4.pmモジュールにはありませんが、XS パッケージの一部ですP4.xs。インストールしても API が正しく設定されていない場合P4.pm、エラーが発生します。

于 2013-09-23T14:31:42.703 に答える
0

コマンド プロンプトで次のコマンドを実行します。

    perl -MP4 -e "print P4::Identify()"

p4perl モジュールをインストールしていない場合は、次のように表示されます。

Can't locate P4.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/....
.... (snip) ....
BEGIN failed--compilation aborted.
于 2014-01-16T11:47:33.610 に答える