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

时间:2014-05-29 10:32:03

标签: c linux gcc shared-libraries

我试图在Linux上测试我在网上看到的示例PCSC应用程序http://ludovicrousseau.blogspot.com.es/2010/04/pcsc-sample-in-c.html

此应用程序使用我使用apptitude安装libpcsclite-dev安装的libpsclite库。

编译时为什么我会得到引用未定义的错误?

gcc -I / usr / include / PCSC -lpcsclite sample.c -o sample / tmp / ccY4bNdm.o:Enlafunciónmain': sample.c:(.text+0x9b): referencia a SCardEstablishContext'sin definir sample.c :(。text + 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'sinin 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 SCardFreeMemory'sin definir sample.c :(。text + 0x3d7):referencia a pcsc_stringify_error' sin definir sample.c:(.text+0x3fa): referencia a SCardReleaseContext'sin definir sample.c :(。text + 0x411):引用一个`pcsc_stringify_error'sin definir collect2:错误:ld返回1退出状态

感谢您收到任何帮助!!

2 个答案:

答案 0 :(得分:1)

仅供参考。似乎该链接中提供的makefile被破坏了(至少对我而言)。这对我来说是一个有效的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

答案 1 :(得分:-1)

如果您无法使用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 CCID智能卡读卡器的PC / SC驱动程序 使用PC / SC(开发文件)访问集市卡的中间件

再试一次。