log4cxx : cannot find -lliblog4cxx.so obwohl File vorhanden



  • Hallo zusammen 🙂

    Das ist mein erster Post, also sag ich mal 'hallo allerseits' 🙂

    Es geht um folgendes:
    Ich habe mir gerade eben log4cxx runtergeladen und konfiguriert, so dass soweit alles Nötige auch drin ist (denk ich mal). Ich habe 3 Tage daran gesessen - und heute endlich auch schon mit einem kleinen Beispiel angefangen (den ich online gefunden habe, um es zu vermeiden, dass ich auch noch eigene Fehler einbaue). Hier der Code: http://www.yolinux.com/TUTORIALS/Log4cxx.html Der Beispiel steht unter Example of C++ logging using log4cxx.

    Ich habe heute bis gerade noch in Eclipse Umgebungsvariablen angepasst, Libraries hier und da kopiert, und überhaupt alles mögliche versucht um die ganzen Compilerfehler wegzukriegen. Es ist mir auch im Weitesten gelungen, abgesehen von dem letzten:

    -----------------------------------------------------------------------------------------
    g++ -L/home/cordula/lib -o"log_ex_3" ./src/log_ex_3.o -lliblog4cxx.so
    /usr/bin/ld: cannot find -lliblog4cxx.so
    collect2: ld gab 1 als Ende-Status zurück
    make: *** [loggy_ex_3] Fehler 1
    -----------------------------------------------------------------------------------------

    Dabei ist liblog4cxx.so physisch vorhanden - keine Ahnung warum er den nicht finden kann. Dazu muss ich sagen, dass ich den makefile nicht selber geschrieben habe (nochmal um mögliche Fehlerquellen zu vermeiden)

    Ich arbeite unter Linux, mit C++ und Eclipse nicht soo lange dass ich mich als Profi bezeichnen würde, mit Logging überhaupt zum ersten mal. Also bitte Rücksicht auf (ggf.) naive Fragen nehmen 🙂

    Vielen Dank im voraus



  • Benutz -llog4cxx.



  • Hallo seldon

    Vielen Dank für die schnelle Antwort.
    So ungern ich das auch sage - ich kann damit nichts anfangen - würdest du bitte ein paar Worte mehr dazu sagen?



  • Du musst im Compileraufruf statt -lliblog4cxx.so -llog4cxx schreiben, sonst sucht der Linker nach libliblog4cxx.so.so oder libliblog4cxx.so.a.

    Das steht auch alles in der Manpage.



  • Hey 🙂

    Hab ich gemacht, der Compiler gibt jetzt aber andere Fehler zurück:

    --------------------------------------------------------------------------------------------------------------------
    g++ -L/home/cordula/lib -o"loggy_ex_3" ./src/loggy_ex_3.o -llog4cxx
    /usr/bin/ld: warning: libdb-4.3.so, needed by /home/cordula/lib/liblog4cxx.so, not found
    . . . . . . (das mehrmals) . . . . . . . .
    . . . . . . . . und dann . . . . . . . . . .
    /home/cordula/lib/liblog4cxx.so: undefined reference to 'apr_filepath_encoding'
    /home/cordula/lib/liblog4cxx.so: undefined reference to 'apr_thread_cond_broadcast'
    /home/cordula/lib/liblog4cxx.so: undefined reference to 'apr_sockaddr_ip_get'
    . . . . . (das auch mehrmals) . . . . . . .
    --------------------------------------------------------------------------------------------------------------------

    Sagt dir das was?



  • Hallo 🙂

    Fällt denn keinem was dazu ein?



  • Du musst scheinbar noch die libapr-1 dazulinken, also zu den LIBS ein "-lapr-1" hinzufügen.



  • Danke 🙂

    Die -lapr wird auch nicht gefunden (wofür steht eigentlich das -1 am Ende?). Ich denke, libapr gehört dann doch auch zu dem Verzeichnis mit Libraries, den man in Eclipse erweitert, oder? In dem System hab ich aber kein libapr.so gefunden, das ich hinzufügen kann. Mach ich ein Denkfehler oder übersehe ich etwas?

    Vielen Dank nochmal 🙂



  • Die libapr-1.so sollte eigentlich bei dir installiert sein (nehm ich jedenfalls an). Hast du -lapr-1 angegeben? Oder -lapr? Die -1 ("Minus Eins") ist hier notwendig, K.A. ob das bei deiner Distri auch sein muss (nehm ich aber ebenfalls an).

    Welche Distribution verwendest du denn?



  • Red Hat Enterprise Linux ES release 4 (Nahant Update 4)

    Ich habe es mit -lapr und -lapr-1 ausprobiert, beides hat den gleichen Fehler verursacht. Aber ich meine ich habe alles von log4cxx, apr-1.4.2 und apr-util installiert .. wie kann ich das nochmal überprüfen?



  • Da es sich dabei nicht um ein Programmierproblem handelt sondern um ein Problem mit der Konfiguration deines Compilers/Linkers schieb ich das mal ins entsprechende Forum (siehe auch Link in meiner Signatur).



  • Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ (auch C++0x) in das Forum Compiler- und IDE-Forum verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten