2013-07-12 261 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中的所有文件,並看看它現在構建.. –