Bibliothek lässt sich nicht einbinden



  • Hallo,

    ich versuche ein C++-Programm zu kompilieren mit

    g++ -o test  readOutMcard.cpp -L/usr/lib -lpcsclite -lmcscm
    

    Allerdings erhalte ich den Fehler: undefined reference. Also die sourcen aus der lib lassen sich nicht einbinden.
    Die Lib ist in "/usr/lib", aber nicht in ldconfig -p aufgeführt. Liegt hier der Fehler?

    Wer es selbst ausprobieren möchte:
    http://rs656.rapidshare.com/files/268738011/mcard.zip

    Fehler-Msg bei mir:

    readOutMcard.cpp:(.text+0xef): undefined reference to `MCardInitialize(long, char*, long*, unsigned long*)'
    readOutMcard.cpp:(.text+0x148): undefined reference to `MCardConnect(long, unsigned long, unsigned char, long*)'
    readOutMcard.cpp:(.text+0x1b0): undefined reference to `MCardReadMemory(long, unsigned char, unsigned long, unsigned char*, unsigned long*)'
    collect2: ld gab 1 als Ende-Status zurück
    


  • Bist du sicher, dass du auch alle benötigten Bibliotheken linkst? Mit dem Programm man: nm kannst du nachschauen, ob die entsprechenden Symbole in der Bibliothek überhaupt vorhanden sind.

    Wie ist ansonsten der exakte Name, der Bibliothek? Gibt es vielleicht eine pkg-config Anweisung oder steht in der Doku etwas dazu?



  • rüdiger schrieb:

    Bist du sicher, dass du auch alle benötigten Bibliotheken linkst?

    Ja. Aus dem ReadMe vom Hersteller:
    "Make sure that the application includes the MCardAPI.h with it.
    and includes the mcscm and pcsclite with it"

    rüdiger schrieb:

    Wie ist ansonsten der exakte Name, der Bibliothek?

    libmcscm.so.3.06

    rüdiger schrieb:

    Gibt es vielleicht eine pkg-config Anweisung oder steht in der Doku etwas dazu?

    Nein, in der Doku finde ich leider nichts dazu. Falls jemand die Quellen vom Hersteller ansehen möchte:
    http://www.scmmicro.com/support_tmp/download.php?file=mcscm_v3.06_32_64bit.tar.gz



  • nm sagt dass die Methoden in der lib sind.


Anmelden zum Antworten