C 如何处理makefile以合并两个单独的程序

C 如何处理makefile以合并两个单独的程序,c,C,我正在尝试使用: 和 创建一个新的程序,使用这两个程序中的代码 我已经开始将代码从mifare classic read ndef.c(从libfreefeare)复制和粘贴到nfc eventd.c,当我运行make时,我得到了预期的错误: ... make[3]: Entering directory `/home/kapcom01/temp/nfc-eventd/src' CCLD nfc-eventd nfc-eventd.o: In function `main': /ho

我正在尝试使用:

创建一个新的程序,使用这两个程序中的代码

我已经开始将代码从
mifare classic read ndef.c
(从libfreefeare)复制和粘贴到
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
显然,我必须以某种方式链接
freefeare.h
和libreefare的所有其他源文件,但我不知道如何


只需
#包括“freefeare.h”
并将文件复制粘贴到同一个目录中是不起作用的。

您是否试图通过将库代码片段直接复制到程序中来使用NFC库?我不明白这怎么行。您需要做的是(a)为您的平台构建库或下载预编译版本,(b)阅读库提供的API相关文档,并在代码中使用该API,以及(c)在编译程序时,与库链接,可能通过在Makefile中添加
-lfreefare
或类似于链接行的内容。(库的文档可能也会告诉您如何执行此操作。)

这似乎属于StackOverflow。我将其标记为mod注意,因为我没有合并功能。您是否尝试将
-lfreefare
添加到您的链接行中?谢谢您的帮助。我在nfc eventd/src/Makefile.AM中的AM_CFLAGS行中添加了-lfreefare,感谢您的帮助。我在nfc eventd/src/Makefile.AM中的AM_CFLAGS行添加了-lfreefare