2013-06-26 91 views
0

我試圖使用方法:如何處理Makefile文件合併兩個單獨的程序

http://nfc-tools.org/index.php?title=Nfc-eventdhttps://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"複製粘貼到同一目錄的文件無法正常工作。

+0

看起來像這樣屬於StackOverflow。由於我沒有合併權力,我將其標記爲mod注意。 – Frank

+1

你有沒有試過把'-lfreefare'加入你的鏈接? –

+0

謝謝你的工作。我在nfc-eventd/src/Makefile.am的AM_CFLAGS行添加了-lfreefare – kapcom01

回答

0

您是否試圖通過將庫代碼片段直接複製到您的程序中來使用NFC庫?我不明白這是如何工作的。您需要做的是(a)爲您的平臺構建庫或下載預編譯版本,(b)閱讀關於庫提供的API的文檔,並在代碼中使用該API,以及(c)編譯程序時,與庫鏈接,可能通過添加-lfreefare或類似於Makefile中的鏈接行。 (圖書館的文檔也許應該告訴你如何做到這一點。)

+0

謝謝你的工作。我在nfc-eventd/src/Makefile.am中的AM_CFLAGS行添加了-lfreefare – kapcom01

相關問題