【发布时间】:2011-07-31 12:47:35
【问题描述】:
我的代码有问题。基本上是这样的:
someclass.hpp:
class SomeClass
{
public:
SomeClass();
~SomeClass();
//... some other methods
};
someclass.cpp:
#include "SomeClass.hpp"
SomeClass::SomeClass()
{
}
SomeClass::~SomeClass()
{
}
SomeClass.cpp 不包含任何其他内容。
构造函数实际上也是空的。我只是不想让它们未定义或离开标准构造函数,因为我以后可能会需要它。
SomeClass.hpp 实际上是一个游戏状态类,它只包含在一个地方:
main.cpp
#include "SomeClass.hpp"
int main()
{
DoSomethingWithGamestate(new SomeClass());
return 0;
}
然后该项目包含许多其他文件,但所有这些文件都独立于 SomeClass。
问题是每当我更改代码中的任何内容时,无论是在哪个文件中,我都必须重新编译整个解决方案,因为如果我只编译更改,链接器会抛出这个:
error LNK2001: unresolved external symbol "public: __thiscall SomeClass::SomeClass(void) (??blablaSomeClassblabla)
显然,这里发生了一些奇怪的事情,因为 SomeClass() 在 someclass.cpp 中明确定义。
这可能是什么原因?
【问题讨论】:
标签: c++ visual-studio visual-studio-2010 linker-errors