Compelierung eines makefiles liefert: /usr/bin/ld: cannot find -lssl (MICO CORBA C++)



  • Guten Abend @all,

    ich möchte mit MICO und C++ eine Client-Server Anwendung schreiben, es scheitert jedoch schon beim Compelieren.

    Ich habe MICO heruntergeladen und nach Anweisung, so wie an meinem Desktop-PC
    installiert(Dort funktioniert auch alles). Da mein Laptop noch eine 32Bit Architektur hat kann ich die Kompilate meines DesktopPCs nicht nutzen(64 Bit).
    Wenn ich auf meinem Laptop mein Makefile mittels make ausführe kommt folgendes
    heraus:

    mico-c++ -o Client Client.o Counter.o -lmico2.3.13 -lssl -lcrypto -L/usr/local/lib -lpthread
    /usr/bin/ld: cannot find -lssl
    /usr/bin/ld: cannot find -lcrypto
    collect2: ld gab 1 als Ende-Status zurück
    make: *** [Client] Fehler 1
    

    Mein Makefile sieht so aus:

    all: Client Server
    Client:  Client.o Counter.o
    	mico-c++ -o Client Client.o Counter.o -lmico2.3.13 -lssl -lcrypto -L/usr/local/lib -lpthread
    
    Server: Server.o Counter.o Counter_impl.o
    	mico-c++ -o Server Server.o Counter.o Counter_impl.o -L/usr/local/lib -lmico2.3.13 -lssl -lcrypto -lpthread
    
    Client.o: Client.cc Counter.h
    	mico-c++ -g -c -I. -I/usr/local/include Client.cc 
    
    Counter.o: Counter.cc Counter.h
    	mico-c++ -g -c -I. -I/usr/local/include Counter.cc
    
    Server.o: Server.cc Counter.h 
    	mico-c++ -g -c -I. -I/usr/local/include Server.cc
    
    Counter_impl.o: Counter_impl.cc Counter_impl.h 
    	mico-c++ -g -c -I. -I/usr/local/include Counter_impl.cc
    
    Counter.cc Counter.h: Counter.idl
    	idl Counter.idl
    
    clean:
    	rm -f core *.o *.html *.ref Client Server Counter.cc Counter.h
    

    Die Datei "ld" existiert, ist aber nur ein Softlink auf eine, im gleichen Ordner liegenden, Datei namens "ld.bfd"

    Das Austauschen der Dateien von Meinem Desktop-PC zu meinem Laptop hat leider auch nicht funktioniert. Irgendwie findet er die Parameter nicht.

    Ist MICO doch falsch installiert?
    Wie lösche ich das und mache es wieder neu?
    Weis jemand wie ich mit MICO auf einem 64Bit System 32 Bit compeliere?
    Eine INSTALL.txt gibt es aber keine UNINSTALL.txt 😉

    Danke schonmal im Vorraus!

    Gruß Meho



  • Es fehlen die Libraries libssl.a und libcrypto.a. Kein Grund ld hinzurichten, das ist nur der Überbringer der schlechten Nachricht...



  • Hallo Bashar,
    danke für die schnelle Antwort!

    ich habe in den Paketquellen meines Kubuntu Systems gesucht bin mir aber nicht sicher welche Pakete ich installieren muss.

    Ich habe es jetzt mit
    libcrypto++-dev und libssl-dev versucht, da bekomme ich folgende Ausgabe wenn ich make eingebe (mit oben stehendem Makefile):

    meho@oldDUO:~/Traffic/Aufgabe1P3$ make
    idl Counter.idl
    mico-c++ -g -c -I. -I/usr/local/include Client.cc 
    mico-c++ -g -c -I. -I/usr/local/include Counter.cc
    mico-c++ -o Client Client.o Counter.o -lmico2.3.13 -lssl -lcrypto -L/usr/local/lib -lpthread
    /usr/local/lib/libmico2.3.13.so: undefined reference to `dlopen'
    /usr/local/lib/libmico2.3.13.so: undefined reference to `dlclose'
    /usr/local/lib/libmico2.3.13.so: undefined reference to `dlerror'
    /usr/local/lib/libmico2.3.13.so: undefined reference to `dlsym'
    collect2: ld gab 1 als Ende-Status zurück
    make: *** [Client] Fehler 1
    

    Waren das jetzt die falschen Bibliotheken/Pakete?

    Ok nach ein bischen googeln scheint dieser Fehler nun an einer "glibc" Bibliothek/Paket zu liegen

    Wenn ich auf meinem System nachsehe sieht das so aus:

    v   glibc-2.13-1                        -                                               
    v   glibc-2.13-1-armel-cross            -                                               
    v   glibc-2.13-1-armhf-cross
    

    mittels

    aptitude show glibc-2.13-1
    

    kam ich darauf, dass diese Pakete von "libc6" bzw. "libc6-dev" abhängen.
    Beide habe ich neu installiert, leider kein Erfolg. 😢

    Danke schonmal für jegliche Hilfe!
    Gruß Meho



  • Ohh mano hat keiner eine Idee?? 😕

    *Push* 🙄

    Gruß Meho



  • Ich würde noch mit dl linken:

    mico-c++ -o Client Client.o Counter.o -lmico2.3.13 -lssl -lcrypto -L/usr/local/lib -lpthread -ldl
    

    (Btw: Kennst du Google?)



  • Hallo IDEE,
    Danke für die Antwort leider bringt das Anfügen von -ldl nicht den gewünschten Erfolg.

    Ja kenne ich, wie ich ja auch schon geschrieben habe!:-)
    "Ok nach ein bischen googeln scheint dieser Fehler nun an einer "glibc" Bibliothek/Paket zu liegen"

    Das Problem bei Googel ist, wenn man nicht die richtigen Fragen stellt, bekommt man nicht die gewünschte Antwort. Daher hilft es manchmal sich mit anderen über das Problem auszutauschen, um neu Ideen für Fragen zu haben (Lösungsansätze).

    Daher danke an alle, die geantwortet haben oder noch antworten! Manchmal hilft schon ein einziger Satz um auf die richtige Idee zu kommen!

    Gruß Michael


Log in to reply