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

个人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)。

相关文章推荐

你可能感兴趣的:(C++,c,C#,Blog)