【发布时间】:2011-02-11 11:27:00
【问题描述】:
大家好,
我编写了一个名为“ioprogram.c”的小程序,带有 gnu readline 库,参考了 Internet 上的各种文档。但是,gcc 报告以下错误。我的问题是什么?
#include <readline/readline.h>
#include <stdio.h>
int main()
{
char* c = readline("");
int len = strlen(c);
for(int i=0; i<len; i++)
{
printf("%c", *(c+i));
fflush(stdout);
}
free(c);
}
gcc 错误:
In file included from /usr/include/readline/readline.h:37,
from ioprogram.c:1:
/usr/include/readline/rltypedefs.h:65: error: expected ‘)’ before ‘*’ token
In file included from ioprogram.c:1:
/usr/include/readline/readline.h:416: error: expected ‘)’ before ‘*’ token
/usr/include/readline/readline.h:532: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
/usr/include/readline/readline.h:533: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
/usr/include/readline/readline.h:555: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
/usr/include/readline/readline.h:823: error: expected specifier-qualifier-list before ‘FILE’
ioprogram.c: In function ‘main’:
ioprogram.c:7: error: ‘for’ loop initial declaration used outside C99 mode
提前感谢任何 cmets。
【问题讨论】:
-
代码为我构建,我在您的代码中看不到语法错误,但您收到的错误表明存在语法错误。请提供您使用的 gcc 版本,以及您尝试编译代码的方式。请记住,您需要链接到 readline 库(“-lreadline”)。
-
谢谢你。 gcc 版本是 gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-48)。我使用“gcc ioprogram.c -o ioprogram”来编译。
标签: gcc compiler-errors stdout stdin readline