0

我是 C 语言的新手,每当我使用 command 编译我的 C 代码时,都会不断收到此错误cc prompt.c。我收到此错误:

架构 x86_64 的未定义符号:

“_add_history”,引用自:

  _main in prompt-66f61f.o

“_readline”,引用自:

  _main in prompt-66f61f.o

ld:未找到架构 x86_64 的符号

clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

这是我的代码:

#include <stdio.h>
#include <stdlib.h>

#include <editline/readline.h>


int main(int argc, char** argv) {

  /* Print Version and Exit Information */
  puts("Lispy Version 0.0.0.0.1");
  puts("Press Ctrl+c to Exit\n");

  /* In a never ending loop */
  while (1) {

    /* Output our prompt and get input */
    char* input = readline("lispy> ");

    /* Add input to history */
    add_history(input);

    /* Echo input back to user */    
    printf("No you're a %s\n", input);

    /* Free retrieved input */
    free(input);

  }

  return 0;
}

如果有帮助,我正在运行 OSX 10.10.3 的 Macbook Air 上编写这个程序。

我刚开始学习C语言,所以不要评判我这个问题是否真的很简单,当我搜索它时没有结果。

任何帮助将不胜感激。谢谢!

4

1 回答 1

1

您需要将程序与editline库链接,以便链接器找到readlineadd_history函数的定义。

您可以通过-l在编译命令中指定带有标志的库来做到这一点:

cc prompt.c -ledit
于 2015-06-09T02:45:52.173 回答