2013-04-09 66 views
1

我正在使用MS-Windows 7 PC-64位。 我使用的是“DWIM Perl for Windows”(http://dwimperl.com/windows.html) - 这是一款草莓Perl衍生产品。未能在Windows 7上使用DWIM安装“PAR :: Packer”Perl模块 - 使用DWIM Perl

我想从cpan运行'安装PAR :: Packer' - 并且失败。见下面的全文。

我在这里看到了建议,从cpan“命令行”运行'look PAR :: Packer'。 但是 - 这也失败,并出现以下错误信息:

C:\Dwimperl\perl\bin\perl.exe encode_append.pl Dynamic.in par.exe Dynamic.pm 
C:\Dwimperl\perl\bin\perl.exe file2c.pl -c 30000 par.exe C:\Dwimperl\perl\bin\pe rl514.dll C:\Dwimperl\perl\bin\libgcc_s_sjlj-1.dll C:./Program > boot_embedded_files.c 
open input file 'C:./Program': No such file or directory at file2c.pl line 43. 
dmake: Error code 130, while making 'boot_embedded_files.c' 
dmake: 'boot_embedded_files.c' removed. 
dmake: Error code 255, while making 'subdirs' 

这里的失败“安装PAR ::包装机”:

cpan> install PAR::Packer 
Running install for module 'PAR::Packer' 
Running make for R/RS/RSCHUPP/PAR-Packer-1.014.tar.gz 
Checksum for C:\Dwimperl\cpan\sources\authors\id\R\RS\RSCHUPP\PAR-Packer-1.014.t 
ar.gz ok 
Scanning cache C:\Dwimperl\cpan\build for sizes 
............................................................................DONE 


    CPAN.pm: Building R/RS/RSCHUPP/PAR-Packer-1.014.tar.gz 

Checking if your kit is complete... 
Looks good 
Prototype mismatch: sub main::prompt: none vs ($;$) at C:/Dwimperl/perl/lib/ExtU 
tils/MakeMaker.pm line 219 
Writing Makefile for par.exe 
Writing MYMETA.yml and MYMETA.json 
Writing Makefile for PAR::Packer 
Writing MYMETA.yml and MYMETA.json 
cp lib/App/Packer/PAR.pm blib\lib\App\Packer\PAR.pm 
cp lib/PAR/Packer.pm blib\lib\PAR\Packer.pm 
cp lib/PAR/Filter/Obfuscate.pm blib\lib\PAR\Filter\Obfuscate.pm 
cp lib/PAR/Filter/PodStrip.pm blib\lib\PAR\Filter\PodStrip.pm 
cp lib/PAR/StrippedPARL/Base.pm blib\lib\PAR\StrippedPARL\Base.pm 
cp lib/PAR/Filter.pm blib\lib\PAR\Filter.pm 
cp lib/PAR/Filter/PatchContent.pm blib\lib\PAR\Filter\PatchContent.pm 
cp lib/PAR/Filter/Bytecode.pm blib\lib\PAR\Filter\Bytecode.pm 
cp lib/pp.pm blib\lib\pp.pm 
cp lib/PAR/Filter/Bleach.pm blib\lib\PAR\Filter\Bleach.pm 
C:\Dwimperl\perl\bin\perl.exe par_pl2c.pl my_par_pl <..\script\par.pl> my_par_ 
pl.c 
C:\Dwimperl\perl\bin\perl.exe sha1.c.PL 
gcc -c -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DUSE_SITECUSTOMIZE -DPERL_IMPLIC 
IT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfields -I"C:\Dwimpe 
rl\perl\lib\CORE" -DPARL_EXE=\"parl.exe\" -s -O2 main.c 
main.c: In function 'main': 
main.c:121: warning: assignment discards qualifiers from pointer target type 
rem 
windres -i winres\pp.rc -o ppresource.coff --input-format=rc --output-format=cof 
f --target=pe-i386 
g++ main.o ppresource.coff -s -s -L"C:\Dwimperl\perl\lib\CORE" -L"C:\Dwimperl\ 
c\lib" C:\Dwimperl\perl\lib\CORE\libperl514.a C:\Dwimperl\c\i686-w64-mingw32\li 
b\libmoldname.a C:\Dwimperl\c\i686-w64-mingw32\lib\libkernel32.a C:\Dwimperl\c\i 
686-w64-mingw32\lib\libuser32.a C:\Dwimperl\c\i686-w64-mingw32\lib\libgdi32.a C: 
\Dwimperl\c\i686-w64-mingw32\lib\libwinspool.a C:\Dwimperl\c\i686-w64-mingw32\li 
b\libcomdlg32.a C:\Dwimperl\c\i686-w64-mingw32\lib\libadvapi32.a C:\Dwimperl\c\i 
686-w64-mingw32\lib\libshell32.a C:\Dwimperl\c\i686-w64-mingw32\lib\libole32.a C 
:\Dwimperl\c\i686-w64-mingw32\lib\liboleaut32.a C:\Dwimperl\c\i686-w64-mingw32\l 
ib\libnetapi32.a C:\Dwimperl\c\i686-w64-mingw32\lib\libuuid.a C:\Dwimperl\c\i686 
-w64-mingw32\lib\libws2_32.a C:\Dwimperl\c\i686-w64-mingw32\lib\libmpr.a C:\Dwim 
perl\c\i686-w64-mingw32\lib\libwinmm.a C:\Dwimperl\c\i686-w64-mingw32\lib\libver 
sion.a C:\Dwimperl\c\i686-w64-mingw32\lib\libodbc32.a C:\Dwimperl\c\i686-w64-min 
gw32\lib\libodbccp32.a C:\Dwimperl\c\i686-w64-mingw32\lib\libcomctl32.a -o par.e 
xe 
rem 
C:\Dwimperl\perl\bin\perl.exe encode_append.pl Dynamic.in par.exe Dynamic.pm 
C:\Dwimperl\perl\bin\perl.exe file2c.pl -c 30000 par.exe C:\Dwimperl\perl\bin\pe 
rl514.dll C:\Dwimperl\perl\bin\libgcc_s_sjlj-1.dll C:./Program > boot_embedded_f 
iles.c 
open input file 'C:./Program': No such file or directory at file2c.pl line 43. 
dmake: Error code 130, while making 'boot_embedded_files.c' 
dmake: 'boot_embedded_files.c' removed. 
dmake.EXE: Error code 255, while making 'subdirs' 
    RSCHUPP/PAR-Packer-1.014.tar.gz 
    C:\Dwimperl\c\bin\dmake.EXE -- NOT OK 
Running make test 
    Can't test without successful make 
Running make install 
    Make had returned bad status, install seems impossible 
Failed during this command: 
RSCHUPP/PAR-Packer-1.014.tar.gz    : make NO 

以下是我运行后得到“看PAR ::从CPAN壳包装机”:

cpan> look PAR::Packer 
Running look for module 'PAR::Packer' 

Trying to open a subshell in the build directory... 
Working directory is C:\Dwimperl\cpan\build\PAR-Packer-1.014-81Pw9j 
Microsoft Windows [Version 6.1.7601] 
Copyright (c) 2009 Microsoft Corporation. All rights reserved. 

C:\Dwimperl\cpan\build\PAR-Packer-1.014-81Pw9j>perl Makefile.PL 
Prototype mismatch: sub main::prompt: none vs ($;$) at C:/Dwimperl/perl/lib/ExtU 
tils/MakeMaker.pm line 219 
Writing Makefile for par.exe 
Writing MYMETA.yml and MYMETA.json 
Writing Makefile for PAR::Packer 
Writing MYMETA.yml and MYMETA.json 

在这里,我也尝试运行 “DMAKE” 自己:

C:\Dwimperl\cpan\build\PAR-Packer-1.014-81Pw9j>dmake -f Makefile install 
Skip blib\lib\App\Packer\PAR.pm (unchanged) 
Skip blib\lib\PAR\Packer.pm (unchanged) 
Skip blib\lib\PAR\Filter\Obfuscate.pm (unchanged) 
Skip blib\lib\PAR\Filter\PodStrip.pm (unchanged) 
Skip blib\lib\PAR\StrippedPARL\Base.pm (unchanged) 
Skip blib\lib\PAR\Filter.pm (unchanged) 
Skip blib\lib\PAR\Filter\PatchContent.pm (unchanged) 
Skip blib\lib\PAR\Filter\Bytecode.pm (unchanged) 
Skip blib\lib\pp.pm (unchanged) 
Skip blib\lib\PAR\Filter\Bleach.pm (unchanged) 
gcc -c -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DUSE_SITECUSTOMIZE -DPERL_IMPLIC 
IT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfields -I"C:\Dwimpe 
rl\perl\lib\CORE" -DPARL_EXE=\"parl.exe\" -s -O2 main.c 
main.c: In function 'main': 
main.c:121: warning: assignment discards qualifiers from pointer target type 
g++ main.o ppresource.coff -s -s -L"C:\Dwimperl\perl\lib\CORE" -L"C:\Dwimperl\ 
c\lib" C:\Dwimperl\perl\lib\CORE\libperl514.a C:\Dwimperl\c\i686-w64-mingw32\li 
b\libmoldname.a C:\Dwimperl\c\i686-w64-mingw32\lib\libkernel32.a C:\Dwimperl\c\i 
686-w64-mingw32\lib\libuser32.a C:\Dwimperl\c\i686-w64-mingw32\lib\libgdi32.a C: 
\Dwimperl\c\i686-w64-mingw32\lib\libwinspool.a C:\Dwimperl\c\i686-w64-mingw32\li 
b\libcomdlg32.a C:\Dwimperl\c\i686-w64-mingw32\lib\libadvapi32.a C:\Dwimperl\c\i 
686-w64-mingw32\lib\libshell32.a C:\Dwimperl\c\i686-w64-mingw32\lib\libole32.a C 
:\Dwimperl\c\i686-w64-mingw32\lib\liboleaut32.a C:\Dwimperl\c\i686-w64-mingw32\l 
ib\libnetapi32.a C:\Dwimperl\c\i686-w64-mingw32\lib\libuuid.a C:\Dwimperl\c\i686 
-w64-mingw32\lib\libws2_32.a C:\Dwimperl\c\i686-w64-mingw32\lib\libmpr.a C:\Dwim 
perl\c\i686-w64-mingw32\lib\libwinmm.a C:\Dwimperl\c\i686-w64-mingw32\lib\libver 
sion.a C:\Dwimperl\c\i686-w64-mingw32\lib\libodbc32.a C:\Dwimperl\c\i686-w64-min 
gw32\lib\libodbccp32.a C:\Dwimperl\c\i686-w64-mingw32\lib\libcomctl32.a -o par.e 
xe 
rem 
C:\Dwimperl\perl\bin\perl.exe encode_append.pl Dynamic.in par.exe Dynamic.pm 
C:\Dwimperl\perl\bin\perl.exe file2c.pl -c 30000 par.exe C:\Dwimperl\perl\bin\pe 
rl514.dll C:\Dwimperl\perl\bin\libgcc_s_sjlj-1.dll C:./Program > boot_embedded_f 
iles.c 
open input file 'C:./Program': No such file or directory at file2c.pl line 43. 
dmake: Error code 130, while making 'boot_embedded_files.c' 
dmake: 'boot_embedded_files.c' removed. 
dmake: Error code 255, while making 'subdirs' 

C:\Dwimperl\cpan\build\PAR-Packer-1.014-81Pw9j> 
C:\Dwimperl\cpan\build\PAR-Packer-1.014-81Pw9j> 
C:\Dwimperl\cpan\build\PAR-Packer-1.014-81Pw9j>gvim Makefile.PL 
'gvim' is not recognized as an internal or external command, 
operable program or batch file. 

C:\Dwimperl\cpan\build\PAR-Packer-1.014-81Pw9j> Makefile.PL 

C:\Dwimperl\cpan\build\PAR-Packer-1.014-81Pw9j> 

回答

1

我只是测试在Strawberry Perl 5.16.2,Windows 7 64位上安装了这个模块,它对我很有用。

你拥有的Perl版本比较陈旧。自那时以来,Strawberry已经对编译器工具链进行了更新,并且在编译过程中发生了失败(丢失或损坏了其中一个所需文件的路径)。

此外,我不知道DWIM Perl是否做了任何非标准的事情,可能会搞砸了。

我建议升级到最新的Perl,也可能切换到标准的草莓Perl。除了一大堆预安装的模块外,DWIM并没有给你任何东西,安装你需要的东西应该是微不足道的。

+0

感谢您的回复。我删除了我的DWIM Perl。 我安装了Strawberry Perl 5.16.3.1 - 现在我确实成功安装了PAR-Packer。 – 2013-04-10 09:07:59

0

我删除了我的DWIM Perl。

我安装了Strawberry Perl 5.16.3.1 - 现在我确实成功地在我的Windows 7 64位上安装了PAR-Packer。

现在我有安装Padre的问题......但那是另一回事。

0

我有同样的问题。以下解决方法为我工作: 去寿外壳并键入:

C:\> cpan 
cpan> look PAR::Packer 
C:\Dwimperl\cpan\build\PAR-Packer-1.014-81Pw9j> perl Makefile.pl 
C:\Dwimperl\cpan\build\PAR-Packer-1.014-81Pw9j> dmake -f Makefile install 

离开外壳开放和遵循的路径(可能会有所不同,取决于你的系统):

C:\Dwimperl\cpan\build\PAR-Packer-1.014-81Pw9j\myldr 

有你”会找到一个名为'Makefile'的文件(没有.pl的文件结尾)。 在文件中搜索字符串'C:./ Program'(某处接近尾部)并删除该部分。 最后运行。

C:\Dwimperl\cpan\build\PAR-Packer-1.014-81Pw9j> dmake -f Makefile install 
0

当尝试使用64位的Perl草莓CPAN 5.20安装PAR ::包装机,我有同样的问题,但他发现,在myldr子目录固定的Makefile的线1010加$(NOOP)如下所示允许dmake成功完成,然后我可以测试并安装。

... 
# dummy targets to satisfy ExtUtils::MakeMaker 
dynamic:: 
    $(NOOP) 
... 

之后,我发现Tk已经安装,所以你可以有tkpp这是非常好的。这取决于tkpod,这是一个非常棒的工具,可以在窗口中显示。但它需要Tk :: Pod,因为其中一个podtree.t会测试GPF,所以它不会安装干净。在强制安装似乎安全的Tk :: Pod之后,tkpod和tkpp都运行良好。