Ошибки Editline

Я новичок в языке C и получаю эту ошибку всякий раз, когда я компилирую свой код C с помощью команды cc prompt.c, Я получаю эту ошибку:

Неопределенные символы для архитектуры x86_64:

"_add_history", ссылка от:

  _main in prompt-66f61f.o

"_readline", ссылка с:

  _main in prompt-66f61f.o

ld: символы не найдены для архитектуры x86_64

clang: error: сбой команды компоновщика с кодом выхода 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;
}

Я пишу эту программу на Macbook Air под управлением OSX 10.10.3, если это поможет.

Я только начинаю изучать язык Си, поэтому не судите меня, если этот вопрос действительно прост, когда я его искал, результатов не было.

Любая помощь будет принята с благодарностью. Спасибо!

1 ответ

Решение

Вам нужно связать свою программу с editline библиотека для того, чтобы ваш компоновщик мог найти определение readline а также add_history функции.

Вы можете сделать это, указав библиотеку с -l Отметьте в вашей команде компиляции:

cc prompt.c -ledit
Другие вопросы по тегам