2013-04-09 130 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都運行良好。