问题描述
当我尝试安装(一个随机数生成器vs伪随机数),我正在运行'dmake',他告诉我在另一个问题上询问错误。
I listened to this one person's advice when I tried installing Math::TrulyRandom (A random number generator vs pseudorandom), I was running 'dmake' and he told me to ask about the errors on a different question.
我的第一个问题是。
这是终端发生了什么问题:
Here is what went wrong in the terminal:
C:\Users\Jlinne\Documents> cpanm --prompt Math::TrulyRandom
--> Working on Math::TrulyRandom
Fetching http://www.cpan.org/authors/id/G/GA/GARY/Math-TrulyRandom-1.0.tar.gz ... OK
Configuring Math-TrulyRandom-1.0 ... OK
Building and testing Math-TrulyRandom-1.0 ... Building Math-TrulyRandom-1.0 failed.
You can s)kip, r)etry, e)xamine build log, or l)ook ? [s] l
Entering C:/Users/Jlinne/.cpanm/work/1476593741.7660/Math-TrulyRandom-1.0 with C:\WINDOWS\system32\cmd.exe
Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.
C:\Users\Jlinne\.cpanm\work\1476593741.7660\Math-TrulyRandom-1.0>perl Makefile.PL
Generating a dmake-style Makefile
Writing Makefile for Math::TrulyRandom
Writing MYMETA.yml and MYMETA.json
C:\Users\Jlinne\.cpanm\work\1476593741.7660\Math-TrulyRandom-1.0>dmake
Skip blib\lib\Math\TrulyRandom.pm (unchanged)
Skip blib\lib\Math\TrulyRandom.pod (unchanged)
Running Mkbootstrap for Math::TrulyRandom ()
"C:\Strawberry\perl\bin\perl.exe" -MExtUtils::Command -e chmod -- 644 "TrulyRandom.bs"
gcc -c -s -O2 -DWIN32 -DWIN64 -DCONSERVATIVE -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fwrapv -fno-strict-aliasing -mms-bitfields -s -O2 -DVERSION=\"1.0\" -DXS_VERSION=\"1.0\" "-IC:\STRAWB~1\perl\lib\CORE" TrulyRandom.c
gcc -c -s -O2 -DWIN32 -DWIN64 -DCONSERVATIVE -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fwrapv -fno-strict-aliasing -mms-bitfields -s -O2 -DVERSION=\"1.0\" -DXS_VERSION=\"1.0\" "-IC:\STRAWB~1\perl\lib\CORE" truerand.c
truerand.c: In function 'tick':
truerand.c:57:19: error: storage size of 'it' isn't known
struct itimerval it, oit;
^
truerand.c:57:23: error: storage size of 'oit' isn't known
struct itimerval it, oit;
^
truerand.c:62:16: error: 'ITIMER_REAL' undeclared (first use in this function)
if (setitimer(ITIMER_REAL, &it, &oit) < 0)
^
truerand.c:62:16: note: each undeclared identifier is reported only once for each function it appears in
truerand.c: In function 'interrupt':
truerand.c:71:16: error: 'SIGALRM' undeclared (first use in this function)
(void) signal(SIGALRM, interrupt);
^
truerand.c: In function 'roulette':
truerand.c:86:16: error: 'SIGALRM' undeclared (first use in this function)
(void) signal(SIGALRM, interrupt);
^
dmake: Error code 129, while making 'truerand.o'
C:\Users\Jlinne\.cpanm\work\1476593741.7660\Math-TrulyRandom-1.0>
推荐答案
数学:: TrulyRandom已损坏,不应确实,不能)被使用。
Math::TrulyRandom is broken, and should not (indeed, cannot) be used.
它是在1996年写的,只能在当时存在的某些UNIX系统上正常工作SunOS 4)。它无法在现代Linux系统上生成随机数据,并且无法在Windows上完全编译。
It was written in 1996, and only works correctly on certain UNIX systems which existed at the time (like SunOS 4). It fails to generate random data on modern Linux systems, and cannot be compiled at all on Windows.
如果需要一个随机数生成器,而 rand
不会剪切它,寻找另一个模块。 或,例如。
If you need a random number generator and rand
won't cut it, look for another module. Math::Random::Secure or Crypt::Random, for instance.
这篇关于使用Math :: TrulyRandom模块Dmake文件错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!