3

私は前にそのような問題に遭遇したことはありません。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"、参照元: cckHOwOt.old の _main: アーキテクチャ x86_64 のシンボルが見つかりません

どなたかアドバイスいただける方よろしくお願いします。ありがとう!

4

1 に答える 1

6

でコードをコンパイルします-lreadline。もちろん、システムに readline-devel パッケージをインストールする必要もあります。

于 2012-12-28T03:20:14.673 に答える