Intel の Compiler 13.1 を使用して Mac OS X 10.7.3 で FFTW 3.1.2 をコンパイルすると、align.c で次のエラーが発生します。
ifftw.h(122): warning #147: declaration is incompatible with "void *alloca(size_t={__darwin_size_t={unsigned long}})" (declared at line 36 of "/usr/include/alloca.h")
void *alloca(size_t);
^
ifftw.h(154): catastrophic error: #error directive: sizeof void* is unknown!
# error sizeof void* is unknown!
^
構成スクリプトはそれをゼロに設定し、config.h ファイルには以下が含まれます。
#define SIZEOF_VOID_P 0
コメントアウトしても、エラーが発生します。エラーは、ifftw.h と次のコードによってキャストされます。
#ifndef HAVE_UINTPTR_T
# if SIZEOF_VOID_P == 0
# error sizeof void* is unknown!
# elif SIZEOF_UNSIGNED_INT == SIZEOF_VOID_P
typedef unsigned int uintptr_t;
# elif SIZEOF_UNSIGNED_LONG == SIZEOF_VOID_P
typedef unsigned long uintptr_t;
# elif SIZEOF_UNSIGNED_LONG_LONG == SIZEOF_VOID_P
typedef unsigned long long uintptr_t;
# else
# error no unsigned integer type matches void* sizeof!
# endif
#endif
したがって、voidのポインターのサイズはゼロであってはならないようですが、私の場合はそうです。これは、Linux でコードをコンパイルする場合には当てはまりません。ここで何が問題なのですか?