Не может связать libreadline на Ubuntu 14.04

это может быть очень глупой ошибкой, но не может найти ссылку в сети.

Я пытаюсь скомпилировать этот абсолютный минимум readline пример:

#include <stdio.h>
#include <malloc.h>
#include <readline/readline.h>

void main(void){

char *line;

while( 1==1 ){
    line=readline("enter text>");
    printf("text: %s <\n",line);
    free(line);
    }
}

и получил это:

$>cc   -lreadline  read_test.c
/tmp/cc6JYBvf.o: In function `main':
read_test.c:(.text+0xe): undefined reference to `readline'
collect2: error: ld returned 1 exit status

Те же компиляции кода, прекрасные на моем ноутбуке Ubuntu 10.04.

также попробованный:

cc -L/usr/lib/x86_64-linux-gnu  -lreadline read_test.c

или

cc -L/usr/lib/x86_64-linux-gnu  -lreadline -lncurses read_test.c

и несколько других вариантов с-m64 или - статичный

Я установил libreadline6-dev и libreadline5-dev.

Заранее спасибо.

LALO

5
задан 14 September 2014 в 19:06

1 ответ

Поместите свои аргументы в пользу компоновщика после вместо прежде Ваши другие аргументы gcc:

ek@Ilex:~/source$ gcc -lreadline read_test.c
/tmp/cc1IuVNQ.o: In function `main':
read_test.c:(.text+0xe): undefined reference to `readline'
collect2: error: ld returned 1 exit status
ek@Ilex:~/source$ gcc read_test.c -lreadline
ek@Ilex:~/source$ ./a.out
enter text>foo
text: foo ^C
3
ответ дан 17 November 2019 в 11:54

Другие вопросы по тегам:

Похожие вопросы: