| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 565 人关注过本帖
标题:请大家指教,多文件编译问题
只看楼主 加入收藏
zhouzhengbo
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-5-1
收藏
 问题点数:0 回复次数:4 
请大家指教,多文件编译问题
我在一个工程中加如了3个文件,分别 是table.h,table.cpp,main.cpp,头文件中定义了类,全局变量和函数声明,table.cpp中是函数实现,main.cpp是主函数,编译无错,连接出错, [Linker error] undefined reference to `fhead' 类的错误,意思应该是fhead未定义,但我
已用#include "table.h"将头文件包含了进来,为什么会出错呢?
搜索更多相关主题的帖子: 文件 编译 指教 
2007-05-01 21:10
yuyunliuhen
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:1435
专家分:0
注 册:2005-12-12
收藏
得分:0 

代码没贴上啊
可能是这个问题
#ifndef TABLE_H
#define TABLE_H

//some code

#endif

文件保存为table.h,试试看


Go confidently in the  directions of your dreams,live the life you have imagined!Just do it!
It is no use learning without thinking!
2007-05-01 21:19
zhouzhengbo
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-5-1
收藏
得分:0 

谢谢,代码比较长我就没贴。
table.h
typedef struct node
{
float address;
float length;
struct node *next;
}free_table;

typedef struct lnode
{
char name;
float address;
float length;
struct lnode *next;
}used_table;

typedef struct pnode
{
free_table *ft;
struct pnode *next;
}view;

extern free_table *fhead;
extern used_table *uhead;
extern view *vhead;
const float minisize=100;
const float add=10240;
const float len=102400;
void insert(free_table *p);
void insert(used_table *p);
void insert(view *p);
void del(free_table *p);
void del(used_table *p);
void del(view *p);
void allocate(const char ,const float );
void reclaim(const char );
void display(void);

谢谢你!!

2007-05-01 21:34
未入流小菜鸟
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-5-1
收藏
得分:0 
全局变量不应该在头文件里定义,否则当头文件被多次包含时就会出现重复定义的编译错误。
不过你的代码是没问题的:
//table.h
extern free_table *fhead;
extern used_table *uhead;
extern view *vhead;
这是声明,不是定义。关键字extern意为该变量是在外部定义的,这里作一个声明而已。
所以你的table.cpp中还要去掉extern,真正定义一次才对。否则就出现未定义的错误了。
2007-05-03 21:38
zhouzhengbo
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-5-1
收藏
得分:0 

是的哦,多谢指正!

2007-05-04 03:00
快速回复:请大家指教,多文件编译问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.047383 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved