【问题标题】:gcc compile error for gnu readline() to read from stdingnu readline() 从标准输入读取的 gcc 编译错误
【发布时间】: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


【解决方案1】:

尝试编译 gcc ioprogram.c -o ioprogram -lreadline -lncurses

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-15
    • 2021-03-27
    • 2013-03-30
    • 2012-02-17
    • 2011-07-01
    • 2019-08-16
    • 2011-11-15
    • 1970-01-01
    相关资源
    最近更新 更多