c/c++ [Linker error] undefined reference to 'XX'错误

本文分享了一次解决C++编译时出现的[Linker error] undefined reference to 'Insert_a_Record(stud*)'错误的经历,并详细解释了该错误产生的原因及解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

个人blog域名http://www.cdusoft.com,欢迎大家来访
有时候在编译C++代码的时候我们经常会遇到一些奇怪的,灵异的错误,也许这就是我遇到的最离奇的错误吧,下面和大家一起分享一下
有一天自己在编译c语言课设的错误~编译时报[Linker error] undefined reference to 'Insert_a_Record(stud *)错误,改得我郁闷了~

以前没遇到过这样的错误,在网上得知undefined reference表示没有连接在库~我就郁闷了,一个简单的课设,自己定义的一个函数怎么会要求连接到什么库呢?花了我大概一个小时才发现为什么会有这样的错误。比如我们写一个C程序:

#include <stdio.h>
int change(int a, int b);
int main(int argc, char *argv[])
{
int a, b;
change(a, b);
}
这个时候编译就会报这样的错误。原因在于我们在程序中声明了change这个函数。可是却没有在程序中实现这个函数。而编译时人认为我们在其它源文件或库中实现了这一函数,而包含的头文件中却没有任何地方实现这一函数,所以就报错:没有连接到库。通俗一点说,就好像我们给某个人说我的书包里有一张什么样的纸,但这个人去找的时候却没有找到,他就回来告诉我们说没有找到这张纸。
这里,某人就像是编译器,书包就像是编译时候所有包含的库,而这张纸就好比我们声明的那个函数。当然,一般是不会有这样错误的,而昨天那同学却把Insert_a_Record的实现函数名写成了Insert_a_record。。。就导致了杯具。。。
个人blog域名http://www.cdusoft.com,欢迎大家来访讨论

记录下来,希望对其它同胞有点用~报这样错误的时候,注意两点:
如果XX部分是自己写的函数,就检查有没有实现这个函数,或者函数名有没有写正确。
如果XX部分是其它扩展库函数,就检查头文件有没有正确包含。(标准库没有包含一般会报first use this function)。

相关文章推荐 :wink:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值