2013-03-14 54 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編輯後添加了標記