乘法定义的符号 - 链接器错误

时间:2013-03-26 03:32:46

标签: c++ linker

当我使用GHS多编译器构建和链接我的代码时,我遇到了一个问题。 这大致是这个想法:

base.h - >

#ifndef base_h
#define base_h
class Base
{
    void basefncn1(); // defined in src file
    void basefncn2(); // defined in src file
    void basefncn3(); // defined in src file
}
#endif

interface.h - >

#ifndef interface_h
#define interface_h

#include "base.h"
class Interface : public Base
{
    void basefncn1();
}

#endif

derivedclass.h - >

#ifndef derived_h
#define derived_h

#include "base.h"
#include "interface.h"
class Derived : public Interface
{
    void basefncn1();
}

#endif

我得到的链接器错误是:

basefncn2() and basefncn3() is multiply defined -> Defined both in base.o and derived.o.

头文件受到保护。

我做错了吗?

编辑:我尝试更改interface.h文件。该函数现在在interface.cpp中定义。 所以基本上,interface.h和derived.h没有定义函数。

0 个答案:

没有答案