3 Stimmen

Entwicklung mit libpcsclite Fehler beim Kompilieren (undefiniert)

Ich versuche, eine Beispiel-PCSC-Anwendung unter Linux zu testen, die ich im Web gesehen habe http://ludovicrousseau.blogspot.com.es/2010/04/pcsc-sample-in-c.html

Diese Anwendung verwendet die libpsclite-Bibliothek, die ich mit apptitude install libpcsclite-dev installiert habe.

Warum erhalte ich beim Kompilieren den Fehler "Referenzen undefiniert"?

gcc -I/usr/include/PCSC -lpcsclite sample.c -o sample/tmp/ccY4bNdm.o: In Funktion main': sample.c:(.text+0x9b): Referenz aufSCardEstablishContext' undefiniert sample.c:(.text+0xb2): Referenz auf pcsc_stringify_error' undefiniert sample.c:(.text+0xf8): Referenz aufSCardListReaders' undefiniert sample.c:(.text+0x10f): Referenz auf pcsc_stringify_error' undefiniert sample.c:(.text+0x171): Referenz aufSCardConnect' undefiniert sample.c:(.text+0x188): Referenz auf pcsc_stringify_error' undefiniert sample.c:(.text+0x1b7): Referenz aufg_rgSCardT0Pci' undefiniert sample.c:(.text+0x1bd): Referenz auf g_rgSCardT0Pci' undefiniert sample.c:(.text+0x1cc): Referenz aufg_rgSCardT1Pci' undefiniert sample.c:(.text+0x1d2): Referenz auf g_rgSCardT1Pci' undefiniert sample.c:(.text+0x21f): Referenz aufSCardTransmit' undefiniert sample.c:(.text+0x236): Referenz auf pcsc_stringify_error' undefiniert sample.c:(.text+0x2e5): Referenz aufSCardTransmit' undefiniert sample.c:(.text+0x2fc): Referenz auf pcsc_stringify_error' undefiniert sample.c:(.text+0x37b): Referenz aufSCardDisconnect' undefiniert sample.c:(.text+0x392): Referenz auf pcsc_stringify_error' undefiniert sample.c:(.text+0x3c0): Referenz aufSCardFreeMemory' undefiniert sample.c:(.text+0x3d7): Referenz auf pcsc_stringify_error' undefiniert sample.c:(.text+0x3fa): Referenz aufSCardReleaseContext' undefiniert sample.c:(.text+0x411): Referenz auf `pcsc_stringify_error' undefiniert collect2: Fehler: ld gab 1 Rückgabewert aus

Vielen Dank für jegliche Hilfe, die ich erhalten kann!!

3voto

Stavros Zavrakas Punkte 3035

Nur zur Referenz. Es scheint, dass das Makefile, das in dem Link bereitgestellt wird, fehlerhaft ist (zumindest für mich). Dies ist ein funktionierendes Makefile für mich:

# Linux
PCSC_CFLAGS := $(shell pkg-config --cflags libpcsclite)
LDLIBS := $(shell pkg-config --libs libpcsclite)

# Mac OS X
#PCSC_CFLAGS := -framework PCSC

CFLAGS += $(PCSC_CFLAGS)

sample: sample.c

clean:
    rm -f sample

-2voto

Wenn Sie mit Ihrem Makefile nicht kompilieren können, müssen Sie einige Bibliotheken neu installieren; für mich funktionieren diese Schritte gut.

update

sudo apt-get update

PC/CS CommonAccessCard installieren

sudo apt-get install libpcsclite1 pcscd pcsc-tools

Überprüfen Sie, ob der Smartcard-Leser erkannt wird

pcsc_scan

/usr/include/PCSC installieren - für dev. PCSC - Linux

PC/SC-Treiber für ACS USB CCID-Smartcard-Leser Middleware zum Zugriff auf eine Smartcard über PC/SC (Entwicklungsdateien)

Und versuchen Sie es erneut.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X