【发布时间】:2016-01-07 18:50:54
【问题描述】:
这似乎是重复的。相反,我试图在 StackOverflow 上找到与我的问题类似的帖子,但我无法解决链接器错误。
这些是链接器错误:
1.
LNK2001 无法解析的外部符号“public: __thiscall ged::Mathematichs::GFraction::~GFraction(void)”(??1GFraction@Mathematichs@ged@@QAE@XZ)
和 2.
LNK2001 未解析的外部符号“public: __thiscall ged::Mathematichs::GFraction::GFraction(int,int)”(??0GFraction@Mathematichs@ged@@QAE@HH@Z)
我已将此项目链接到我的静态库(其中定义了 GFraction)。 问题不在于与库的链接,因为我在该库中还有其他实际工作的类。
这是构造函数和析构函数的定义
#ifndef GFraction_H
#define GFraction_H
#include <string>
namespace ged
{
namespace Mathematichs
{
class GFraction
{
public:
GFraction();
GFraction(int num, int den);
};
}
}
#endif
在 .cpp 文件中我有这个:
#include "GFraction.h"
using namespace ged::Mathematichs;
GFraction::GFraction() {}
GFraction::~GFraction() {}
但是,如果我尝试在 .h 文件中直接实现构造函数和析构函数的主体,链接器错误就会消失。
为什么?我希望那些在 .cpp 文件中!
【问题讨论】:
-
GFraction 类的分子和分母在哪里?
-
@val 它们是私有变量。我没有把它们写在这里以免造成混乱
标签: linker