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.zipFehler-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.