Visual Studio 2012链接错误
问题描述:
我在这里面临一个奇怪的问题。我有我的VS2012项目全部建立,工作正常。但是,当我尝试添加到我班的一个方法的简单的任务,它不会正确链接,我得到Visual Studio 2012链接错误
error LNK2019: unresolved external symbol "public: void __thiscall Camera::calcularDirecao(class GLFWwindow *)" ([email protected]@@[email protected]@@Z)
这是我的相机类:
class Camera {
public:
Camera() { ... inline constructor ... }
~Camera() {}
... other methods (which link fine) ...
void calcularDirecao(GLFWwindow *);
};
在我执行文件我有
void Camera::calcularDirecao(GLFWwindow *janela) {
... code ...
}
... other methods ...
我已经试过重建和所有,没有成功。提前致谢。
答
重新从头开始重新创建项目,检查它是否有效。之后,比较你的vcxproj
文件。他们是文本文件。任何文本比较工具都可以使用。他们的区别可能会说明很多。
也尝试在十六进制编辑器中查看您的源文件。在你困扰的方法和周围寻找任何非ASCII符号。这些符号可能不会在IDE查看器中显示,但仍可能会使编译器感到困惑。
答
我怀疑你的GLFWwindow定义会被你的.cpp中包含的其他文件覆盖。
+0
要验证这包括您的.h中的所有文件,并看看它现在构建.. –
只是一个(愚蠢的)建议:在这样的情况下,当编译器/链接器似乎忽略我的代码时,我尝试在代码中添加一些*无意义*来查看是否收到编译错误!例如,您可以将'lkdhgre'放入'calcularDirecao'方法的主体中,查看编译器是否抱怨。如果没有,这意味着它没有看到方法体出于某种原因(错误的文件,预处理器宏等) – yzt
@yzt是的,我得到一个编译错误时添加垃圾到方法 –
好吧,我' d尝试改变方法的名称,添加其他方法(用CPP文件中的实现)以查看它们是否会出现相同的问题,将有问题的方法的实现内联移动,将其移动到另一个CPP文件等。(当然这些都是诊断的步骤,而不是解决方案。) – yzt