C中的readline不起作用

时间:2012-12-28 03:13:25

标签: c

我以前从未遇到过这样的问题。我在Mac上编写简单的C程序,并像往常一样用gcc编译。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <readline/readline.h>
#include <readline/history.h>

#define MAXLINES 5

char *lineptr[MAXLINES];
void writel(char *lineptr[], int nlines);
void quicksort(char *lineptr[], int left, int right);
void swap(char *v[], int i, int j);

/* sort input lines */
int main() {
  int nlines; /* number of lines to read */
  int i = 0;

  /* saves lines in the array lineptr */
  while (i < MAXLINES) {
    lineptr[i] = readline("Enter a line: \n");
    i++;
  }

  quicksort(lineptr, 0, MAXLINES-1);
  writel(lineptr, MAXLINES);
  return 0;
}

似乎readline引起了麻烦。一旦我评论出lineptr[i] = readline("Enter a line: \n");,它编译好了。但我不明白这里的readline有什么问题......错误是:

  

架构x86_64的未定义符号:   “_readline”,引自:       _main in cckHOwOt.o   ld:找不到架构x86_64的符号

感谢能够提供一些建议的任何人。 谢谢!

1 个答案:

答案 0 :(得分:6)

使用-lreadline编译代码。当然,您还需要在系统上安装readline-devel软件包。