以下のコードに問題があります。それは私に何も言わないエラーを投げます。
私はファイルmemory.hを持っています。
#ifndef BLOCK_SIZE
#define BLOCK_SIZE 8
#endif
以下のようにフラグメントを含むconfiguration.acファイルもあります。
AC_ARG_WITH([block-size],
[AS_HELP_STRING([--with-block-size],["Define blocksize to initialize with. Default value: 8]")],
[bsize="$withval"],
[])
if test ! -z "${bsize}"; then
if test "${bsize}" > 0 ; then
AC_DEFINE_UNQUOTED([BLOCK_SIZE], [$b_size], [Defining block size in bytes])
else
AC_DEFINE_UNQUOTED([BLOCK_SIZE], [8], [Default block size : 8B])
fi
fi
その後、コマンド./configure --with-block-size=16 --with-allocator=STR_MIN
を使用してmakefileの作成を完了しました。しかし今、私はmake
コマンドを使用すると、多くのエラーが発生します:
memory.c: In function 'initialize':
memory.c:15:59: error: expected expression before ')' token
memory.c: In function 'allocate':
memory.c:26:41: error: expected expression before ')' token
memory.c:53:56: error: expected expression before ';' token
memory.c: In function 'defragment':
memory.c:140:73: error: expected expression before ')' token
memory.c: In function 'diagnoze':
memory.c:174:183: error: expected expression before ',' token
エラーのあるすべての行は次のようになります。
mem -> unused_list -> address = malloc(count * BLOCK_SIZE);
new -> address = space -> address + size * BLOCK_SIZE;
コンパイラはBLOCK_SIZEをまったく認識していないようです。さて、なぜかという疑問があります。私を知っていると、私はおそらくこのコードで後者を1つか2つ食べたことがあるでしょう。しかし、私はそれを見つけることができず、これ以上この問題を引き起こす可能性があるものの手がかりがありません。以前に使用したautomakeの他のすべてのコマンド(./con ..を含む)はエラーをスローしませんでした。