#include <readline/readline.h> geht nicht

Dieses Thema im Forum "C/C++" wurde erstellt von Nano, 13.02.2009.

  1. Nano

    Nano Foren As

    Dabei seit:
    02.12.2006
    Beiträge:
    93
    Zustimmungen:
    0
    Hallo zusammen folgendes Problem ich möchte die Bibliothek http://directory.fsf.org/project/readline/
    in ein C Programm einbinden, leider gelingt mir dies nicht, getestet hab ich es sowohl unter Debian als auch mit cygwin unter Win XP

    entsprechend der manpage habe ich folgenden code geschrieben

    Code:
    
    #include <stdio.h>
    #include <stdlib.h>
    #include "C:/cygwin/usr/include/readline/readline.h"
    #include "C:/cygwin/usr/include/readline/history.h"
    
    int
    main (void)
    {
      char *buf;
    
    
    
      while (1)
      {
          const char * p = " : ";
          buf = readline(p);
      }
      exit (EXIT_SUCCESS);
      return 0;
    }
    
    
    bei buf = readline(p); beschwert sich der compiler :

    die includes hab ich schon verschieden getestet, obige version war die explizite path angabe zu der von cygwin mitgelieferten readline
    <readline/readline.h> funktioniert ebnesowenig
    sowie entpacken der dateien http://directory.fsf.org/project/readline/ von
    und explizite path angabe dazu,...
    Unter Debian hab ich die entsprechenden Packete per aptitude installiert, leider auch ohne erfolg
    auf verschiedenen seite fand ich angaben für die übersetzung die allerdings auch nichts nutzten
    gcc -lreadline -lncurses code.c -o code
    gcc -lreadline code.c -o code

    ohne die zeile mit dem readline code in der schleife wird die datei problemlos übersetzt.

    entwicklungsumgebung ist auf beiden system eclipse, wobei ich unter debian auch per vi die file erstellt und mit gcc übersetzt habe, bzw versucht habe sie zu übersetzen die fehlermeldung ist leider die gleiche, undefined reference to readline


    ich sitze jetzt schon einige stunden an diesem problem und bin kurz davor in die tastatur zu beissen,...
    ich hoffe jemand hat eine zündende idee
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Gast1, 13.02.2009
    Zuletzt von einem Moderator bearbeitet: 13.02.2009
    Gast1

    Gast1 Guest

    Code:
    $ cat bla.c
    #include <stdio.h>
    #include <stdlib.h>
    #include <readline/readline.h>
    #include <readline/history.h>
    
    int
    main (void)
    {
      char *buf;
    
    
    
      while (1)
      {
          const char * p = " : ";
          buf = readline(p);
      }
      exit (EXIT_SUCCESS);
      return 0;
    }
    
    $ gcc bla.c -lreadline -o bla
    $ ./bla
     :             
    works for me™ (openSUSE 11.1).


    //Edit:

    (VM mit Lenny)

    Code:
    dpkg -l | grep readline
    ii  libreadline5                                5.2-3.1                                             GNU readline and history libraries, run-time
    ii  libreadline5-dev                            5.2-3.1                                             GNU readline and history libraries, developm
    ii  readline-common                             5.2-3.1                                             GNU readline and history libraries, common 
    
    find /usr/include -iname "*readline*"
    
    /usr/include/readline
    /usr/include/readline/readline.h
    
    $ gcc bla.c -lreadline -o bla
    $ ./bla
     :  
    Wo ist das Problem?
     
  4. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Mit 'undefined reference' beschwert sich eigentlich nicht der Kompiler, sondern der linker. Das heisst, dass die header schon korrekt eingebunden und die Funktion readline dort auch deklariert wurde.
    Erst beim Linken wurde die Definition nicht gefunden. Ich vermute, dass Du die library nicht mitangegeben hast. Versuch mal, so zu kompilieren, wie es Rain_Maker vorschlaegt, naemlich mit einem '-lreadline'. Damit wird wird der Linker aufgefordert, auch in der Bibliothek libreadline.so nach definitionen zu suchen.
     
  5. Nano

    Nano Foren As

    Dabei seit:
    02.12.2006
    Beiträge:
    93
    Zustimmungen:
    0
    ok das funktioniert viele dank!
     
  6. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

#include <readline/readline.h> geht nicht

Die Seite wird geladen...

#include <readline/readline.h> geht nicht - Ähnliche Themen

  1. #include Problem

    #include Problem: Hi@all,... ich hab Headerfiles in mehreren Instanzen, und mein Problem ist das ich wenn ich unter C ein Header-File aus einem hoeheren...
  2. Kdevelop #include <string> Probleme

    Kdevelop #include <string> Probleme: Hi, ich will ein Progamm schreiben und bekomme trotz #include <string> die Fehlermeldung "error: 'string' does not name a type". Könnt Ihr...