我正在尝试安装PP将Perl脚本编译成EXE文件,我使用的是64位Windows 7和32位ActiveState Perl。输入后
cpanm pp
我的命令提示符返回
--> Working on pp
Fetching http://search.cpan.org/CPAN/authors/id/R/RS/RSCHUPP/P
r.gz ... OK
Configuring PAR-Packer-1.010 ... OK
Building and testing PAR-Packer-1.010 ... FAIL
! Installing pp failed. See \.cpanm\build.log for details.
.cpanm \ build.log在哪里读取:
cpanm (App::cpanminus) 1.5004 on perl 5.014002 built for MSWin32-x86-multi-thread
Work directory is /.cpanm/work/1321468976.3220
You have make nmake.exe
You have LWP 6.02
Falling back to Archive::Tar 1.78
Searching pp on cpanmetadb ...
--> Working on pp
Fetching http://search.cpan.org/CPAN/authors/id/R/RS/RSCHUPP/PAR-Packer-1.010.tar.gz
-> OK
Unpacking PAR-Packer-1.010.tar.gz
Entering PAR-Packer-1.010
Checking configure dependencies from META.yml
Checking if you have ExtUtils::Embed 0 ... Yes (1.3001)
Checking if you have ExtUtils::MakeMaker 6.42 ... Yes (6.57_05)
Configuring PAR-Packer-1.010
Running Makefile.PL
Checking if your kit is complete...
Warning: the following files are missing in your kit:
myldr/boot
myldr/boot.o
myldr/parl
myldr/pm_to_blib
parpackerresource.zip
Please inform the author.
Prototype mismatch: sub main::prompt: none vs ($;$) at C:/Perl/lib/ExtUtils/MakeMaker.pm line 218
Writing Makefile for par.exe
Writing MYMETA.yml
Writing Makefile for PAR::Packer
Writing MYMETA.yml
-> OK
Checking dependencies from MYMETA.yml ...
Checking if you have ExtUtils::Embed 0 ... Yes (1.3001)
Checking if you have ExtUtils::MakeMaker 6.42 ... Yes (6.57_05)
Checking if you have Compress::Zlib 1.16 ... Yes (2.037)
Checking if you have Archive::Zip 1 ... Yes (1.30)
Checking if you have PAR 1.000 ... Yes (1.002)
Checking if you have IO::Compress::Gzip 0 ... Yes (2.037)
Checking if you have Getopt::ArgvFile 1.07 ... Yes (1.11)
Checking if you have PAR::Dist 0.22 ... Yes (0.48)
Checking if you have Win32::Process 0 ... Yes (0.14)
Checking if you have File::Temp 0.05 ... Yes (0.22)
Checking if you have Module::ScanDeps 1.01 ... Yes (1.05)
Checking if you have Parse::Binary 0.04 ... Yes (0.11)
Checking if you have Win32::Exe 0.14 ... Yes (0.17)
Building and testing PAR-Packer-1.010
Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
Copyright (C) Microsoft Corporation. All rights reserved.
C:\Perl\bin\perl.exe "-Minc::Module::Install" -e "extract_par(q(PAR-Packer-1.010-MSWin32-x86-multi-thread-5.14.2.par))"
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:\PROGRA~2\MICROS~1.0\VC\BIN\nmake.exe -f Makefile all -nologo
C:\Perl\bin\perl.exe file2c.pl -s ..\script\par.pl my_par_pl.c load_my_par_pl
C:\Perl\bin\perl.exe sha1.c.PL
cl -c -Zm1000 -nologo -GF -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DPERL_TEXTMODE_SCRIPTS -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -D_USE_32BIT_TIME_T -I"C:\Perl\lib\CORE" -DPARL_EXE=\"parl.exe\" -MD -Zi -DNDEBUG -O1 main.c
main.c
c:\.cpanm\work\1321468976.3220\par-packer-1.010\myldr\env.c(68) : warning C4996: 'strnicmp': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strnicmp. See online help for details.
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\string.h(248) : see declaration of 'strnicmp'
c:\.cpanm\work\1321468976.3220\par-packer-1.010\myldr\utils.c(104) : warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See online help for details.
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\string.h(238) : see declaration of 'strdup'
c:\.cpanm\work\1321468976.3220\par-packer-1.010\myldr\utils.c(138) : warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\string.h(197) : see declaration of 'strtok'
c:\.cpanm\work\1321468976.3220\par-packer-1.010\myldr\utils.c(143) : warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\string.h(197) : see declaration of 'strtok'
c:\.cpanm\work\1321468976.3220\par-packer-1.010\myldr\utils.c(159) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\stdio.h(371) : see declaration of 'sprintf'
c:\.cpanm\work\1321468976.3220\par-packer-1.010\myldr\utils.c(163) : warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See online help for details.
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\string.h(238) : see declaration of 'strdup'
c:\.cpanm\work\1321468976.3220\par-packer-1.010\myldr\utils.c(165) : warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\string.h(197) : see declaration of 'strtok'
c:\.cpanm\work\1321468976.3220\par-packer-1.010\myldr\utils.c(193) : warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See online help for details.
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\string.h(238) : see declaration of 'strdup'
c:\.cpanm\work\1321468976.3220\par-packer-1.010\myldr\utils.c(206) : warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See online help for details.
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\string.h(238) : see declaration of 'strdup'
c:\.cpanm\work\1321468976.3220\par-packer-1.010\myldr\utils.c(209) : warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See online help for details.
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\string.h(238) : see declaration of 'strdup'
c:\.cpanm\work\1321468976.3220\par-packer-1.010\myldr\utils.c(221) : warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\string.h(188) : see declaration of 'strncpy'
c:\.cpanm\work\1321468976.3220\par-packer-1.010\myldr\mktmpdir.c(53) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\stdio.h(371) : see declaration of 'sprintf'
c:\.cpanm\work\1321468976.3220\par-packer-1.010\myldr\mktmpdir.c(89) : warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See online help for details.
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\string.h(238) : see declaration of 'strdup'
c:\.cpanm\work\1321468976.3220\par-packer-1.010\myldr\mktmpdir.c(109) : warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See online help for details.
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\string.h(238) : see declaration of 'strdup'
c:\.cpanm\work\1321468976.3220\par-packer-1.010\myldr\mktmpdir.c(129) : warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See online help for details.
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\string.h(238) : see declaration of 'strdup'
c:\.cpanm\work\1321468976.3220\par-packer-1.010\myldr\mktmpdir.c(137) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\stdio.h(371) : see declaration of 'sprintf'
c:\.cpanm\work\1321468976.3220\par-packer-1.010\myldr\mktmpdir.c(149) : warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See online help for details.
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\string.h(238) : see declaration of 'strdup'
c:\.cpanm\work\1321468976.3220\par-packer-1.010\myldr\mktmpdir.c(166) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\stdio.h(371) : see declaration of 'sprintf'
c:\.cpanm\work\1321468976.3220\par-packer-1.010\myldr\mktmpdir.c(172) : warning C4996: 'strdup': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _strdup. See online help for details.
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\string.h(238) : see declaration of 'strdup'
c:\.cpanm\work\1321468976.3220\par-packer-1.010\myldr\mktmpdir.c(211) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\stdio.h(371) : see declaration of 'sprintf'
c:\.cpanm\work\1321468976.3220\par-packer-1.010\myldr\mktmpdir.c(225) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\stdio.h(371) : see declaration of 'sprintf'
c:\.cpanm\work\1321468976.3220\par-packer-1.010\myldr\mktmpdir.c(232) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\stdio.h(371) : see declaration of 'sprintf'
c:\.cpanm\work\1321468976.3220\par-packer-1.010\myldr\mktmpdir.c(245) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\stdio.h(371) : see declaration of 'sprintf'
c:\.cpanm\work\1321468976.3220\par-packer-1.010\myldr\mktmpdir.c(258) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\stdio.h(371) : see declaration of 'sprintf'
c:\.cpanm\work\1321468976.3220\par-packer-1.010\myldr\mktmpdir.c(288) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\stdio.h(371) : see declaration of 'sprintf'
c:\.cpanm\work\1321468976.3220\par-packer-1.010\myldr\mktmpdir.c(295) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\stdio.h(371) : see declaration of 'sprintf'
c:\.cpanm\work\1321468976.3220\par-packer-1.010\myldr\mktmpdir.c(298) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\stdio.h(371) : see declaration of 'sprintf'
link main.obj win32.obj -release -nologo -nodefaultlib -debug -opt:ref,icf -libpath:"C:\Perl\lib\CORE" -machine:x86 C:\Perl\lib\CORE\perl514.lib "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\LIB\oldnames.lib" "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\kernel32.lib" "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\user32.lib" "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\gdi32.lib" "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\winspool.lib" "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\comdlg32.lib" "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\advapi32.lib" "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\shell32.lib" "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\ole32.lib" "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\oleaut32.lib" "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\netapi32.lib" "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\uuid.lib" "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\ws2_32.lib" "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\mpr.lib" "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\winmm.lib" "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\version.lib" "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\odbc32.lib" "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\odbccp32.lib" "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\comctl32.lib" "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\LIB\msvcrt.lib" -out:par.exe
mt -nologo -manifest par.exe.manifest -outputresource:par.exe;1
par.exe.manifest : general error c1010070: Failed to load and parse the manifest. The system cannot find the file specified.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\mt.EXE"' : return code '0x1f'
Stop.
NMAKE : fatal error U1077: 'C:\PROGRA~2\MICROS~1.0\VC\BIN\nmake.exe' : return code '0x2'
我似乎无法弄清楚实际问题是什么。
我知道它有点多,但我之前没有这样做过,任何有关我的错误可能的帮助或指示都会受到赞赏。
答案 0 :(得分:4)
喔男孩......
看起来ActivePerl正在使用VisualStudio来编译而不是MinGW。清理起来可能有点乱。
幸运的是,您可以使用Perl Package Manager为您安装Par-Packer。 ActiveState已经为你编译了麻烦。
只需在命令提示符下键入ppm Par-Packer
即可。或者,使用Perl Package Manager GUI。它位于“开始”菜单 - >“程序”中的ActiveState菜单项下。
答案 1 :(得分:0)
对应this message,您应该制作两份文件MANIFEST
,并将其命名为par.exe.manifest
和static.exe.manifest
。
我试过了,并取得了成功。