自写头文件问题

舟遥 2012-12-31 04:43:46
环境:DevCPP4.9.9.2
问题描述,自己尝试写了个简单的头文件,但是一直提示 [Linker error] undefined reference to `Out()' ,求解释求教育
第一个文件:main函数
main.cpp

#include<stdlib.h>
#include<stdio.h>
#include"testhead.h"

int main(void)
{
Out();
system("pause");
return 0;
}

第二个文件,也即头文件:testhead.h

#ifndef TESTHEAD_H
#define TESTHEAD_H
char string[]="Hello World!";
void Out(void);
#endif

第三个文件,头文件所声明的函数实现的问题:testhead.cpp

#include"testhead.h"
void Out(void){
printf("%s",string);
}

我如果将Out函数的实现放在头文件testhead.h中就可以编译通过,但是这样的话岂不是函数的实现和声明都在头文件中,这样貌似是不推荐的啊
...全文
176 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
舟遥 2012-12-31
  • 打赏
  • 举报
回复
建立工程之后再包含相应文件就可以了,还是自己平时的习惯问题
舟遥 2012-12-31
  • 打赏
  • 举报
回复
引用 1 楼 turingo 的回复:
要把testhead.cpp也加入工程一起编译。
引用 2 楼 kuzuozhou 的回复:
链接错误。。检查testhead.cpp是否在源文件中编译了。。不然不会出错的。 参考 有时候在编译C++代码的时候我们经常会遇到一些奇怪的,灵异的错误,也许这就是我遇到的最离奇的错误吧,下面和大家一起分享一下 有一天自己在编译c语言课设的错误~编译时报[Linker error] undefined reference to 'Insert_a_Record(s……
不太习惯用devcpp建工程,现在基本上是直接写一些c文件或者.h文件然后包含一下,方便快捷。。。 我还是试试用工程来包含一下吧
pengfoo 2012-12-31
  • 打赏
  • 举报
回复
链接错误。。检查testhead.cpp是否在源文件中编译了。。不然不会出错的。 参考 有时候在编译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)。
图灵狗 2012-12-31
  • 打赏
  • 举报
回复
要把testhead.cpp也加入工程一起编译。

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧