下面的代码有问题它给我的错误告诉我什么都不知道。
我有一个文件存储器
#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;
编译器似乎根本看不到块大小。现在有一个问题是为什么。
我知道我可能已经吃了后两个在这个代码但我找不到,也不知道还有什么能引起这个问题我之前使用的automake的所有其他命令(包括./con..)都没有抛出任何错误。
最佳答案
像我想的那样愚蠢的错误我只是换了一条线:
AC_DEFINE_UNQUOTED([BLOCK_SIZE], [$bsize], [Defining block size in bytes])
正如有人所说,没有遗漏的引语,只是简单到多。
不管怎样,谢谢你的帮助。
关于c - 编译器看不到的常量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15626934/