gpt4 book ai didi

c - 在另一台机器上编译时 gcc 中出现 undefined reference 错误

转载 作者:太空宇宙 更新时间:2023-11-03 23:55:07 30 4
gpt4 key购买 nike

我编写了一个程序 (myreader.c) 来操作 RFID 阅读器。

我在包的根目录下输入“make”进行编译,makefile如下所示

  # CC and CFLAGS are varilables 
CC=gcc
CFLAGS = -c
# -c option ask g++ to compile the source files, but do not link.
# -g option is for debugging version
# -O2 option is for optimized version
OPTFLAGS = -O2 -g

myreader : src/myreader.c
$(CC) $(OPTFLAGS) src/myreader.c src/crypto1.c src/nfc-utils.c -lnfc -o ./bin/myreader

# clean all the .o and executable files
clean:
rm -rf bin/myreader

它在我原来的机器(64 位,Ubuntu 12.04 LTS)上运行良好,唯一的问题是,当我键入 make 时,会出现警告信息。

  src/myreader.c:519:6: warning: conflicting types for ‘printResult’ [enabled by default]
src/myreader.c:211:3: note: previous implicit declaration of ‘printResult’ was here

但是/bin/myreader 运行良好。


但是,当我将包移动到另一台机器(64 位,Ubuntu 11.10)时,并以与原始机器相同的方式键入 make。

出现以下错误信息:

  berln@ubuntu:~/桌面/useful code$ make
gcc -O2 -g src/myreader.c src/crypto1.c src/nfc-utils.c -lnfc -o ./bin/myreader
src/myreader.c:519:6: warning: conflicting types for ‘printResult’ [enabled by default]
src/myreader.c:211:3: note: previous implicit declaration of ‘printResult’ was here
/tmp/ccrKvhjm.o: In function `mf_enhanced_auth':/home/berln/桌面/useful code/src/myreader.c:373: undefined reference to `nfc_configure'
/home/berln/桌面/useful code/src/myreader.c:380: undefined reference to `nfc_configure'
/home/berln/桌面/useful code/src/myreader.c:390: undefined reference to `nfc_configure'
/home/berln/桌面/useful code/src/myreader.c:434: undefined reference to `nfc_configure'
/tmp/ccrKvhjm.o: In function `mf_configure':
/home/berln/桌面/useful code/src/myreader.c:484: undefined reference to `nfc_configure'
/tmp/ccrKvhjm.o:/home/berln/桌面/useful code/src/myreader.c:489: more undefined references to `nfc_configure' follow
/tmp/ccrKvhjm.o: In function `main':
/home/berln/桌面/useful code/src/myreader.c:155: undefined reference to `nfc_connect'
/home/berln/桌面/useful code/src/myreader.c:213: undefined reference to `nfc_disconnect'
collect2: ld returned 1 exit status
make: *** [myreader] Error 1

我不知道为什么这个错误只发生在一台机器上而不是两台机器上。

如果需要更多信息,可以下载包here .

提前致谢。

最佳答案

看起来问题出在 nfc 库中,但链接器并没有提示它丢失了,所以它有问题。尝试重新编译它。如果它是一个包,请检查它是否与其他服务器上的版本相同。

关于c - 在另一台机器上编译时 gcc 中出现 undefined reference 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9789979/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com