Я пытаюсь использовать:Как обрабатывать Makefiles объединить две отдельные программы
http://nfc-tools.org/index.php?title=Nfc-eventd и https://code.google.com/p/libfreefare/
создать новую программу, которые делают использование кода из обоих из них.
Я начал с копирования и вставки кода из mifare-classic-read-ndef.c
(от libfreefare) до nfc-eventd.c
и когда я бегу make
я получить ожидаемые ошибки:
...
make[3]: Entering directory `/home/kapcom01/temp/nfc-eventd/src'
CCLD nfc-eventd
nfc-eventd.o: In function `main':
/home/kapcom01/temp/nfc-eventd/src/nfc-eventd.c:380: undefined reference to `freefare_get_tags'
/home/kapcom01/temp/nfc-eventd/src/nfc-eventd.c:387: undefined reference to `freefare_get_tag_type'
/home/kapcom01/temp/nfc-eventd/src/nfc-eventd.c:395: undefined reference to `freefare_get_tag_uid'
/home/kapcom01/temp/nfc-eventd/src/nfc-eventd.c:398: undefined reference to `freefare_get_tag_friendly_name'
/home/kapcom01/temp/nfc-eventd/src/nfc-eventd.c:407: undefined reference to `mifare_classic_connect'
/home/kapcom01/temp/nfc-eventd/src/nfc-eventd.c:470: undefined reference to `freefare_free_tags'
/home/kapcom01/temp/nfc-eventd/src/nfc-eventd.c:414: undefined reference to `mad_read'
/home/kapcom01/temp/nfc-eventd/src/nfc-eventd.c:418: undefined reference to `mad_nfcforum_aid'
/home/kapcom01/temp/nfc-eventd/src/nfc-eventd.c:418: undefined reference to `mifare_classic_nfcforum_public_key_a'
/home/kapcom01/temp/nfc-eventd/src/nfc-eventd.c:418: undefined reference to `mifare_application_read'
/home/kapcom01/temp/nfc-eventd/src/nfc-eventd.c:422: undefined reference to `tlv_decode'
collect2: error: ld returned 1 exit status
make[3]: *** [nfc-eventd] Error 1
make[3]: Leaving directory `/home/kapcom01/temp/nfc-eventd/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/kapcom01/temp/nfc-eventd/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/kapcom01/temp/nfc-eventd'
make: *** [all] Error 2
Очевидно, что я должен связать каким-то freefare.h
и все другие исходные файлы libreefare, но я не могу понять, как это сделать.
Просто #include "freefare.h"
и скопировать файлы в один каталог не удалось.
Похоже, это принадлежит StackOverflow. Я заметил, что это модно, поскольку у меня нет мощности слияния. – Frank
Вы пытались добавить '-lfreefare' в свою линию ссылок? –
Спасибо, что сработал. Я добавил -lfreefare в строке AM_CFLAGS в nfc-eventd/src/Makefile.am – kapcom01