0

我已经成功编译了 libnfc 并且示例都可以正常工作。现在,我正在尝试自己编译其中一个示例,以了解如何去做。

我要编译的文件与 libnfc self 位于不同的文件夹中。当我编译它给我以下错误(和警告):

C:\thesis\libnfc\dev>gcc -m32 test.c -o test -L"C:\thesis\libnfc\libnfc-build\libnfc" -lnfc
In file included from test.c:48:0:
utils/nfc-utils.h:97:14: warning: 'str_nfc_baud_rate' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]
C:\Users\xxxx\AppData\Local\Temp\cc2LqPG1.o:test.c:(.text+0x2e): undefined reference to `print_hex_bits'
C:\Users\xxxx\AppData\Local\Temp\cc2LqPG1.o:test.c:(.text+0xaf): undefined reference to `print_hex_bits'
C:\Users\xxxx\AppData\Local\Temp\cc2LqPG1.o:test.c:(.text+0xe8): undefined reference to `print_hex'
C:\Users\xxxx\AppData\Local\Temp\cc2LqPG1.o:test.c:(.text+0x15a): undefined reference to `print_hex'
C:\Users\xxxx\AppData\Local\Temp\cc2LqPG1.o:test.c:(.text+0xa87): undefined reference to `print_hex'
collect2.exe: error: ld returned 1 exit status

这些函数在 nfc-utils 中定义。我假设这些也已编译到dll中?我已将文件夹 utils 与内容 nfc-utils.c 和 .h 放在同一个文件夹中,但这也无济于事。

test.c 文件与 nfc-anticol.c 文件的内容相同。

有什么建议么?

4

1 回答 1

0

好的,我自己找到的。

我显然忘记在 gcc -c 步骤中将 utils/nfc-utils.c 与 test.c 一起编译。分两步做了,找到了。

C:\thesis\libnfc\dev>gcc -m32 test.c utils/nfc-utils.c -c
In file included from test.c:48:0:
utils/nfc-utils.h:97:14: warning: 'str_nfc_baud_rate' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]
In file included from utils/nfc-utils.c:37:0:
utils/nfc-utils.h:97:14: warning: 'str_nfc_baud_rate' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]

C:\thesis\libnfc\dev>gcc -m32 test.o nfc-utils.o -o test -L"C:\thesis\libnfc\libnfc-build\libnfc" -lnfc

这给出了两个警告,但是当我运行它时,它可以工作。

于 2013-03-02T13:39:15.217 回答