Perl的新手。我已经设法通过命令提示符在我的Windows 7 PC上安装了一些来自CPAN的模块,但是在安装Math :: Random时我遇到了困难。不知道这里发生了什么。我已经尝试谷歌搜索几个小时来利用。这就是我得到的......
cpan> install Math::Random
Database was generated on Thu, 14 Mar 2013 15:15:50 GMT
Running install for module 'Math::Random'
Running make for G/GR/GROMMEL/Math-Random-0.71.tar.gz
Fetching with LWP:
http://cpan.strawberryperl.com/authors/id/G/GR/GROMMEL/Math-Random-0.71.tar.gz
Checksum for C:\strawberry\cpan\sources\authors\id\G\GR\GROMMEL\Math-Random-0.71
.tar.gz ok
Scanning cache C:\strawberry\cpan\build for sizes
............................................................................DONE
Invalid header block at offset unknown at C:\strawberry\perl\lib/CPAN/Tarzip.pm
line 365.
Invalid header block at offset unknown at C:\strawberry\perl\lib/CPAN/Tarzip.pm
line 365.
Invalid header block at offset unknown at C:\strawberry\perl\lib/CPAN/Tarzip.pm
line 365.
Invalid header block at offset unknown at C:\strawberry\perl\lib/CPAN/Tarzip.pm
line 365.
Invalid header block at offset unknown at C:\strawberry\perl\lib/CPAN/Tarzip.pm
line 365.
Invalid header block at offset unknown at C:\strawberry\perl\lib/CPAN/Tarzip.pm
line 365.
Invalid header block at offset unknown at C:\strawberry\perl\lib/CPAN/Tarzip.pm
line 365.
Invalid header block at offset unknown at C:\strawberry\perl\lib/CPAN/Tarzip.pm
line 365.
CPAN.pm: Building G/GR/GROMMEL/Math-Random-0.71.tar.gz
Checking if your kit is complete...
Looks good
Writing Makefile for Math::Random
Writing MYMETA.yml and MYMETA.json
cp test2.pl blib\lib\Math\test2.pl
cp Random.pm blib\lib\Math\Random.pm
AutoSplitting blib\lib\Math\Random.pm (blib\lib\auto\Math\Random)
cp test1.pl blib\lib\Math\test1.pl
cp example.pl blib\lib\Math\example.pl
C:\strawberry\perl\bin\perl.exe C:\strawberry\perl\lib\ExtUtils\xsubpp -typemap
C:\strawberry\perl\lib\ExtUtils\typemap Random.xs > Random.xsc && C:\strawberr
y\perl\bin\perl.exe -MExtUtils::Command -e mv -- Random.xsc Random.c
gcc -c -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -
DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfields -s -O2 -DVERSION=\"0.
71\" -DXS_VERSION=\"0.71\" "-IC:\strawberry\perl\lib\CORE" Random.c
gcc -c -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -
DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfields -s -O2 -DVERSION=\"0.
71\" -DXS_VERSION=\"0.71\" "-IC:\strawberry\perl\lib\CORE" com.c
gcc -c -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -
DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfields -s -O2 -DVERSION=\"0.
71\" -DXS_VERSION=\"0.71\" "-IC:\strawberry\perl\lib\CORE" helper.c
gcc -c -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -
DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfields -s -O2 -DVERSION=\"0.
71\" -DXS_VERSION=\"0.71\" "-IC:\strawberry\perl\lib\CORE" linpack.c
gcc -c -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -
DPERL_IMPLICIT_SYS -fno-strict-aliasing -mms-bitfields -s -O2 -DVERSION=\"0.
71\" -DXS_VERSION=\"0.71\" "-IC:\strawberry\perl\lib\CORE" randlib.c
Running Mkbootstrap for Math::Random ()
C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e chmod -- 644 Random.bs
C:\strawberry\perl\bin\perl.exe -MExtUtils::Mksymlists \
-e "Mksymlists('NAME'=>\"Math::Random\", 'DLBASE' => 'Random', 'DL_FUNCS' =
> { }, 'FUNCLIST' => [], 'IMPORTS' => { }, 'DL_VARS' => []);"
dlltool --def Random.def --output-exp dll.exp
g++ -o blib\arch\auto\Math\Random\Random.dll -Wl,--base-file -Wl,dll.base -mdll
-s -L"C:\strawberry\perl\lib\CORE" -L"C:\strawberry\c\lib" Random.o com.o
helper.o linpack.o randlib.o C:\strawberry\perl\lib\CORE\libperl5
16.a C:\strawberry\c\i686-w64-mingw32\lib\libm.a C:\strawberry\c\i686-w64-mingw3
2\lib\libmoldname.a C:\strawberry\c\i686-w64-mingw32\lib\libkernel32.a C:\strawb
erry\c\i686-w64-mingw32\lib\libuser32.a C:\strawberry\c\i686-w64-mingw32\lib\lib
gdi32.a C:\strawberry\c\i686-w64-mingw32\lib\libwinspool.a C:\strawberry\c\i686-
w64-mingw32\lib\libcomdlg32.a C:\strawberry\c\i686-w64-mingw32\lib\libadvapi32.a
C:\strawberry\c\i686-w64-mingw32\lib\libshell32.a C:\strawberry\c\i686-w64-ming
w32\lib\libole32.a C:\strawberry\c\i686-w64-mingw32\lib\liboleaut32.a C:\strawbe
rry\c\i686-w64-mingw32\lib\libnetapi32.a C:\strawberry\c\i686-w64-mingw32\lib\li
buuid.a C:\strawberry\c\i686-w64-mingw32\lib\libws2_32.a C:\strawberry\c\i686-w6
4-mingw32\lib\libmpr.a C:\strawberry\c\i686-w64-mingw32\lib\libwinmm.a C:\strawb
erry\c\i686-w64-mingw32\lib\libversion.a C:\strawberry\c\i686-w64-mingw32\lib\li
bodbc32.a C:\strawberry\c\i686-w64-mingw32\lib\libodbccp32.a C:\strawberry\c\i68
6-w64-mingw32\lib\libcomctl32.a dll.exp
dlltool --def Random.def --base-file dll.base --output-exp dll.exp
g++ -o blib\arch\auto\Math\Random\Random.dll -mdll -s -L"C:\strawberry\perl\lib\
CORE" -L"C:\strawberry\c\lib" Random.o com.o helper.o linpack.o
randlib.o C:\strawberry\perl\lib\CORE\libperl516.a C:\strawberry\c\i686-w64-mi
ngw32\lib\libm.a C:\strawberry\c\i686-w64-mingw32\lib\libmoldname.a C:\strawberr
y\c\i686-w64-mingw32\lib\libkernel32.a C:\strawberry\c\i686-w64-mingw32\lib\libu
ser32.a C:\strawberry\c\i686-w64-mingw32\lib\libgdi32.a C:\strawberry\c\i686-w64
-mingw32\lib\libwinspool.a C:\strawberry\c\i686-w64-mingw32\lib\libcomdlg32.a C:
\strawberry\c\i686-w64-mingw32\lib\libadvapi32.a C:\strawberry\c\i686-w64-mingw3
2\lib\libshell32.a C:\strawberry\c\i686-w64-mingw32\lib\libole32.a C:\strawberry
\c\i686-w64-mingw32\lib\liboleaut32.a C:\strawberry\c\i686-w64-mingw32\lib\libne
tapi32.a C:\strawberry\c\i686-w64-mingw32\lib\libuuid.a C:\strawberry\c\i686-w64
-mingw32\lib\libws2_32.a C:\strawberry\c\i686-w64-mingw32\lib\libmpr.a C:\strawb
erry\c\i686-w64-mingw32\lib\libwinmm.a C:\strawberry\c\i686-w64-mingw32\lib\libv
ersion.a C:\strawberry\c\i686-w64-mingw32\lib\libodbc32.a C:\strawberry\c\i686-w
64-mingw32\lib\libodbccp32.a C:\strawberry\c\i686-w64-mingw32\lib\libcomctl32.a
dll.exp
C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e chmod -- 755 blib\arch\au
to\Math\Random\Random.dll
C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e cp -- Random.bs blib\arch
\auto\Math\Random\Random.bs
C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e chmod -- 644 blib\arch\au
to\Math\Random\Random.bs
GROMMEL/Math-Random-0.71.tar.gz
C:\strawberry\c\bin\dmake.exe -- OK
Running make test
C:\strawberry\perl\bin\perl.exe "-Iblib\lib" "-Iblib\arch" test.pl
1..16
Can't load 'blib\arch/auto/Math/Random/Random.dll' for module Math::Random: load
_file:Invalid access to memory location at C:/strawberry/perl/lib/DynaLoader.pm
line 190.
at test.pl line 9.
Compilation failed in require at test.pl line 9.
BEGIN failed--compilation aborted at test.pl line 9.
dmake.exe: Error code 130, while making 'test_dynamic'
GROMMEL/Math-Random-0.71.tar.gz
C:\strawberry\c\bin\dmake.exe test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
reports GROMMEL/Math-Random-0.71.tar.gz
Running make install
make test had returned bad status, won't install without force
Stopping: 'install' failed for 'Math::Random'.
Failed during this command:
GROMMEL/Math-Random-0.71.tar.gz : make_test NO
答案 0 :(得分:1)
我现在已经解决了这个问题。我删除了Rtools(帮助开发R软件包的软件)并编辑了Path变量以便松散..
C:\Rtools\bin;
C:\Rtools\perl\bin;
C:\Rtools\gcc-4.6.3\bin;
C:\Rtools\MinGW\bin;
然后我卸载并重新安装了草莓perl(我之前尝试过最后一步,没有运气)。我怀疑在阅读@summea链接后,路径中的MinGW可能是问题的原因,并且@ikegami编辑添加mingw标记