2013-03-14 58 views
2

Perl的新手位。我已经设法通过命令提示符在我的Windows 7 PC上安装了一些CPAN模块,但是在安装Math :: Random时遇到了困难。不知道这里发生了什么。我已经尝试了几个小时使用Google搜索。这是我得到的...安装模块时出现“无法访问内存位置”

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 
+1

不知道是否它是相同的问题...但其他人遇到了类似的问题在PerlMonks上[(here)](http://www.perlmonks.org/?node_id=714484)它可能与你的草莓配置有关......或者可能与自动运行配置有关...(可能的答案在PerlMonks链接的底部。) – summea 2013-03-14 20:42:46

+1

谢谢@summea。发现问题出在Path中 – gjabel 2013-03-15 12:16:35

回答

1

我现在已经修复了这个问题。我删除Rtools(软件,以帮助开发R封装)和编辑Path变量松动..

C:\Rtools\bin; 
C:\Rtools\perl\bin; 
C:\Rtools\gcc-4.6.3\bin; 
C:\Rtools\MinGW\bin; 

我然后卸载并重新安装草莓的Perl(我试过这最后没有运气之前步骤)。我怀疑路径中的MinGW可能是在阅读@summea链接和@ikegami编辑后添加了标记