于果电陶炉:gcc编译的一个问题

来源:百度文库 编辑:中科新闻网 时间:2024/04/29 08:17:55
#include <stdio.h>
...
void main()
{
FILE * lcd;
.....
#ifdef LCD_DISPLAY_NAME
lcd = fopen("/dev/lcd_display", "w");
#endif
.........
}
编译提示:
obj/count_binary.o(.text+0x98): In function `main':
../count_binary.c:22: undefined reference to `fopen'
collect2: ld returned 1 exit status
make: *** [count_binary_3.elf] Error 1
Build completed

测试编译器是否有安装问题。
(1) 先加入其他.h
#include <stdio.h>
#include <stdlib.h>
#include <strings.h> 或 <string.h>
FILE * lcd;

(2) 把 fopen 提上来
void main()
{
#ifdef LCD_DISPLAY_NAME
lcd = fopen("/dev/lcd_display", "w");
#endif
.........
}
-------------------------------
若仍找不到fopen,则要检查环境变量或重装gcc

obj/count_binary.o(.本文 +0 x98): 在功能中主要部份':
。。/count_binary.c:22: 关于的不明确的参考fopen'
collect2: ld 回了 1种出口状态
制造: ***[count_binary_3.elf] 错误 1
建立完成

编译器的问题,重新安装试一试。

链接库的问题,可以加上 -L +glibc的路径
或者将链接库,应该是个.so的文件,拷到/usr/lib下即可,当然可能还要做个符号连接。

Linux下的C还没用过!

fopen是printf.o里面的,
这个明显是没有链接好c库。