c++ - 每次更改代码后都无法解析外部符号

标签 c++ visual-studio visual-studio-2010 linker-errors

我的代码有问题。它基本上看起来像这样:

一些类.hpp:

class SomeClass
{
 public:
    SomeClass();
    ~SomeClass();

    //... some other methods
};

一些类.cpp:

#include "SomeClass.hpp"
SomeClass::SomeClass()
{
}

SomeClass::~SomeClass()
{
}

SomeClass.cpp 不包含任何其他内容。

构造函数实际上也是空的。我只是不想让它们未定义或留下标准构造函数,因为我以后可能会需要它。

SomeClass.hpp 实际上是一个 gamestate 类,它只包含在一个地方:

主要.cpp

#include "SomeClass.hpp"

int main()
{
   DoSomethingWithGamestate(new SomeClass());
   return 0;
}

然后该项目由许多其他文件组成,但所有这些文件都独立于 SomeClass。

问题是每当我更改代码中的任何内容时,无论在哪个文件中,我都必须重新编译整个解决方案,因为如果我只编译更改,链接器会抛出此错误:

error LNK2001: unresolved external symbol "public: __thiscall SomeClass::SomeClass(void) (??blablaSomeClassblabla)

显然,这里发生了一些奇怪的事情,因为在 someclass.cpp 中明确定义了 SomeClass()。

这可能是什么来源?

最佳答案

除了@Nawaz 所说的之外,您的构建文件可能与链接器不同步,因此当 Visual Studio 重新链接时,它不能,因为文件不同步。只需重新构建并完成它。

顺便说一下,它甚至可能是 Visual Studio 2010 中的一个错误 as seen here .

关于c++ - 每次更改代码后都无法解析外部符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6889565/

相关文章:

visual-studio - Visual Studio Team Services - 构建失败,定义错误?

c++ - 使用 vcpkg 安装 GTK3 的主题和图标问题

visual-studio-2010 - 设置和部署项目中系统驱动器的默认位置

c++ - 在不使用 VariantTimeToSystemTime 的情况下将 OLE 自动化日期 (OADate) double 转换为 struct tm

c++ - OpenSSL 客户端不发送客户端证书

c++ - 拥有类变量或局部函数变量更好/更快吗?

c - C Windows 中的简单链表

c++ - const HANDLE 真的是 const 吗?

c# - gridview 中的 ASP.NET C# 代码按钮

visual-studio-2010 - Visual Studio 2010 IDE布局