使用libpcsclite进行错误编译(未定义)

我试图在Linux上testing一个样本PCSC应用程序,我在网上看到http://ludovicrousseau.blogspot.com.es/2010/04/pcsc-sample-in-c.html

这个应用程序使用libpsclite库,我用apptitude安装了libpcsclite-dev。

为什么在编译时得到引用undefined错误?

gcc -I / usr / include / PCSC -lpcsclite sample.c -o sample / tmp / ccY4bNdm.o:En lafunciónmain main': sample.c:(.text+0x9b): referencia a SCardEstablishContext'sin definir sample.c ( pcsc_stringify_error' sin definir sample.c:(.text+0xf8): referencia a + 0xb2):referencia a pcsc_stringify_error' sin definir sample.c:(.text+0xf8): referencia a SCardListReaders'sin definir sample.c :(。text + 0x10f):referencia a pcsc_stringify_error' sin definir sample.c:(.text+0x171): referencia a SCardConnect'sin definir sample.c :(。text + 0x188):referencia a pcsc_stringify_error' sin definir sample.c:(.text+0x1b7): referencia a g_rgSCardT0Pci'sin definir sample .c :(。text + 0x1bd):referencia a g_rgSCardT0Pci' sin definir sample.c:(.text+0x1cc): referencia a g_rgSCardT1Pci'sin definir sample.c :(。text + 0x1d2):referencia a g_rgSCardT1Pci' sin definir sample.c:(.text+0x21f): referencia a SCardTransmit'sin definir sample.c :(。text + 0x236):referencia a pcsc_stringify_error' sin definir sample.c:(.text+0x2e5): referencia a SCardTransmit'sin definir sample.c :(。text + 0x2fc):referencia a pcsc_stringify_error' sin definir sample.c:(.text+0x37b): referencia a SCardDisconnect'sin definir sample.c :(。text + 0x392):referencia a pcsc_stringify_error' sin definir sample.c:(.text+0x3c0): referencia a (.text pcsc_stringify_error' sin definir sample.c:(.text+0x3fa): referencia a SCardFreeMemory'sin definir sample.c: referencia一个`pcsc_stringify_error'sin definir collect2:错误:ld返回1退出状态

感谢您收到的任何帮助!

仅供参考。 看起来,该链接中提供的生成文件被打破(至少对我来说)。 这对我来说是一个可行的makefile:

 # 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 

如果你不能用你的makefile进行编译,你必须重新安装一些库。 对我来说这些步骤工作正常。

更新

sudo apt-get update

安装PC / CS CommonAccessCard

sudo apt-get install libpcsclite1 pcscd pcsc-tools

验证智能卡读卡器是否被识别

pcsc_scan

安装/ usr / include / PCSC – 用于开发。 PCSC – Linux

用于ACS USB的PC / SC驱动程序CCID智能卡读卡器使用PC / SC(开发文件)访问集中卡的中间件

然后再试一次。