Bei folgendem Befehl
1 | gcc -lpcsclite -o cardlogin_cardadmin cardlogin_cardadmin.o get_current_card_id.o |
bekomme ich diesen Fehler:
/usr/bin/ld: get_current_card_id.o: in function `get_current_card_id': get_current_card_id.c:(.text+0x48): undefined reference to `SCardEstablishContext' /usr/bin/ld: get_current_card_id.c:(.text+0x6a): undefined reference to `SCardListReaders' /usr/bin/ld: get_current_card_id.c:(.text+0x90): undefined reference to `SCardListReaders' ...
Ich kann mir keinen Reim drauf machen, was das Problem ist. Er findet libpcsclite, sonst würde er das als Fehler melden. Warum findet er SCardEstablishContext und die anderen nicht?
Detaillierter Output:
ld --trace-symbol=SCardEstablishContext -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/cc0kdX57.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cardlogin_cardadmin /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. -lpcsclite -lgcc -lgcc_s -lc cardlogin_cardadmin.o get_current_card_id.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libpcsclite.so: definition of SCardEstablishContext ld: get_current_card_id.o: reference to SCardEstablishContext ld: get_current_card_id.o: in function `get_current_card_id': get_current_card_id.c:(.text+0x48): undefined reference to `SCardEstablishContext'