linker findet readline nicht.
-
Hallo Forum,
ich bin inzwischen Student der Informatik und in SOS1 gibt's jetzt dann Systemprogrammierung mit C.
Demnächst sollen wir eine einfache Shell programmiern und auch mal malloc nachbauen.
Eigentlich bin ich ja aus dem C++-Lager - aber ich kann mich auch mit C anfreunden.Jetzt habe ich halt ein bisschen mit C rumgespielt (pronix.de ist offen..) und wollte nun mit readline eben eine Eingabe einlesen.
Hier mein Code:
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <readline/readline.h> #include <readline/history.h> const char* prompt = "?: "; int main() { char* text = readline(prompt); printf("%s\n", text); free(text); /* strtok-Spielchen */ return 0; }
Und hier die Ausgabe vom GCC
gcc -Wall -W --pedantic -o Pointertest Pointertest.o Pointertest.o: In function `main': Pointertest.c:(.text+0x25): undefined reference to `readline' collect2: ld gab 1 als Ende-Status zurück
Laut manpage von readline gibt's ja nur diese beiden Header, die ich auch eingebunden habe.
Lasse ich z.b. den Prompt weg, dann meldet mir gcc ja auch den Fehler, dass readline noch einen Parameter braucht. Das mit den Headern müsste also passen.Nur eben der Linker steigt aus.
Muss ich noch eine Bibliothek nutzen?
glibc? Wenn ja - wie genau muss ich die dann einbinden?Würde mich sehr freuen, wenn ihr mit den heißen Tipp gebt.
-
Du musst die readline-Lib und wahrscheinlich auch curses einbinden:
gcc -Wall -W --pedantic -o Pointertest Pointertest.o [b]-lcurses -lreadline[/b]
-
-lreadline war (und ist) der Schlüssel zu meinem Problem.