Undefined reference to 错误总结

运行环境:   OS, Archlinux  Compiler, gcc 4.6.0

C程序(为说明问题,其他不相关的文件不表): a.c (含main函数),b.c, b.h(有工具函数f())

问题:undefined reference to 'f'

卡了我好久,现在总结一下,Undefined reference to的错误一般有以下几种:

1)makefile写错

注意链接语句中一定要有b.c生成的b.o,在依赖关系一行和链接命令一行都要写,一共两个b.o不要漏

a: a.c b.o b.h

  $(CXX) $(CFLAGS) a.c b.o -o a -lm

这个错误解决方法是在网上学到的,不过检查发现我的makefile没有问题,原因是下面的错误

2)b.c没有#include "b.h"

尝试在a.c中去到#include "b.h",结果报告的错误变成了: 'f’在此作用域中尚未声明

头文件没有问题,再到b.c中看,原来有b.c中忘记#include “b.h”了。没有#include "b.h",b.o中没有f的符号,在链接中肯定找不到f函数的实现了。

3)如果还有其他常见原因,欢迎大家补充

转载于:https://www.cnblogs.com/fenggangwu/archive/2011/06/16/undefined_reference_to.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值