2017-10-19 3 views
1

dieharderを使用してランダムシーケンスの品質をテストしようとしています。 Windows上でコンパイルするために、私はmsysとgslの開発をインストールしました。 GSLは問題なくコンパイルされました。 Dieharderをコンパイルするには、私が最初に./configure を実行し、その後、私はMSYSでmakeに入ったとき、それはエラーメッセージの下に返します。Dieharderランダムテストスイートがコンパイルされない

(cd libdieharder; \make) 
make[1]: Entering directory `/f/dieharder-3.31.1/libdieharder' 
/bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -DVERSION=3.31.1 -DLITTLE_ENDIAN=1 -I ../include -I /usr/local/include -std=c99 -Wall -pedantic -g -O2 -MT libdieharder_la-dab_dct.lo -MD -MP -MF .deps/libdieharder_la-dab_dct.Tpo -c -o libdieharder_la-dab_dct.lo `test -f 'dab_dct.c' || echo './'`dab_dct.c 
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -DVERSION=3.31.1 -DLITTLE_ENDIAN=1 -I ../include -I /usr/local/include -std=c99 -Wall -pedantic -g -O2 -MT libdieharder_la-dab_dct.lo -MD -MP -MF .deps/libdieharder_la-dab_dct.Tpo -c dab_dct.c -DDLL_EXPORT -DPIC -o .libs/libdieharder_la-dab_dct.o 
make[1]: Leaving directory `/f/dieharder-3.31.1/libdieharder' 

エラーメッセージは次のとおりです。

dab_dct.c: In function 'fDCT2': 
dab_dct.c:251:44: error: 'M_PI' undeclared (first use in this function) 
     output[i] += (double) input[j] * cos((M_PI/len) * (0.5 + j) * i); 
              ^~~~ 
dab_dct.c:251:44: note: each undeclared identifier is reported only once for each function it appears in 
dab_dct.c: In function 'iDCT2': 
dab_dct.c:274:30: error: 'M_PI' undeclared (first use in this function) 
     sum += input[j] * cos(((M_PI * j)/len) * (0.5 + i)); 
           ^~~~ 
dab_dct.c: In function 'evalMostExtreme': 
dab_dct.c:289:15: warning: variable 'pos' set but not used [-Wunused-but-set-variable] 
    unsigned int pos = 0; 
       ^~~ 
make[1]: *** [libdieharder_la-dab_dct.lo] Error 1 
make[1]: Leaving directory `/f/dieharder-3.31.1/libdieharder' 
make: *** [libwulf.time] Error 2 

私の質問は、私は宣言する必要があるかどうかでありますファイルの先頭にあるM_PIまたはインストールプロセス中に間違いましたか?

+0

@KenWhite、申し訳ありませんが、あなたは正しいです。エラーメッセージを追加しました。 – David

答えて

0

定数はmath.hにあり、そこにM_PIがあります。