2013-07-12 227 views
0

我在这里面临一个奇怪的问题。我有我的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 ... 

我已经试过重建和所有,没有成功。提前致谢。

+3

只是一个(愚蠢的)建议:在这样的情况下,当编译器/链接器似乎忽略我的代码时,我尝试在代码中添加一些*无意义*来查看是否收到编译错误!例如,您可以将'lkdhgre'放入'calcularDirecao'方法的主体中,查看编译器是否抱怨。如果没有,这意味着它没有看到方法体出于某种原因(错误的文件,预处理器宏等) – yzt

+0

@yzt是的,我得到一个编译错误时添加垃圾到方法 –

+0

好吧,我' d尝试改变方法的名称,添加其他方法(用CPP文件中的实现)以查看它们是否会出现相同的问题,将有问题的方法的实现内联移动,将其移动到另一个CPP文件等。(当然这些都是诊断的步骤,而不是解决方案。) – yzt

回答

2

重新从头开始重新创建项目,检查它是否有效。之后,比较你的vcxproj文件。他们是文本文件。任何文本比较工具都可以使用。他们的区别可能会说明很多。

也尝试在十六进制编辑器中查看您的源文件。在你困扰的方法和周围寻找任何非ASCII符号。这些符号可能不会在IDE查看器中显示,但仍可能会使编译器感到困惑。

0

我怀疑你的GLFWwindow定义会被你的.cpp中包含的其他文件覆盖。

+0

要验证这包括您的.h中的所有文件,并看看它现在构建.. –