我在一个单文档结构的程序中加了一个头文件xinde.h,用来装一些自己定义的结构体变量和函数。
然后再后面的几个cpp文件中都要用到其中的函数。所以就在cpp文件开头加上#include"xinde.h"
编译后出现错误说:自定义的那些函数有重复定义。
然后我又在xinde.h文件开头加了#ifndef __XINDE_H
#define __XINDE_H这样的定义,
然后出现新的错误:CYuan.obj : error LNK2005: "void __cdecl change(class CDib *,class CPoint,struct YANSE)" (?change@@YAXPAVCDib@@VCPoint@@UYANSE@@@Z) already defined in CHuabi.obj
StdAfx.obj : error LNK2005: "void __cdecl change(class CDib *,class CPoint,struct YANSE)" (?change@@YAXPAVCDib@@VCPoint@@UYANSE@@@Z) already defined in CHuabi.obj
请问这样的问题应该怎样解决阿?
然后再后面的几个cpp文件中都要用到其中的函数。所以就在cpp文件开头加上#include"xinde.h"
编译后出现错误说:自定义的那些函数有重复定义。
然后我又在xinde.h文件开头加了#ifndef __XINDE_H
#define __XINDE_H这样的定义,
然后出现新的错误:CYuan.obj : error LNK2005: "void __cdecl change(class CDib *,class CPoint,struct YANSE)" (?change@@YAXPAVCDib@@VCPoint@@UYANSE@@@Z) already defined in CHuabi.obj
StdAfx.obj : error LNK2005: "void __cdecl change(class CDib *,class CPoint,struct YANSE)" (?change@@YAXPAVCDib@@VCPoint@@UYANSE@@@Z) already defined in CHuabi.obj
请问这样的问题应该怎样解决阿?
extern void __cdecl change(class CDib *,class CPoint,struct YANSE);
a.cpp
void __cdecl change(class CDib *,class CPoint,struct YANSE)
{
//...
}其他用到的地方#include "a.h"
static void change(class CDib *,class CPoint,struct YANSE);
如果你不想这么干,把你想申明的结构体或变量在你要用的地方做extern申明也行