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/

相关文章:

c++ - SWIG Python 到 C++ : TypeError trying to set struct member of type map<string, int>

c# - 将按钮添加到数据模板并调用其点击事件

c++ - Visual Studio 2010 和 QT 4.7.1 静态链接

c++ - 将 ListBox 复制到剪贴板,返回不保存的载体

c++ - 我如何强制cmake在Linux中使用/usr/include中的C++头文件?

visual-studio - 如何通过大量项目加速visual studio?

visual-studio - 让 Visual Studio 在按下 Ctrl 和光标键时理解 CamelCase

c++ - Fortify on Visual Studio 2010 C++ 项目 - 错误 MSB6006 : -1073741701

c++ - 在结构中指定设备特定功能

visual-studio - 在 Visual Studio 2013 中显示堆栈内容(不是堆栈调用)