2012-12-15 28 views
7

我正在使用this OpenGL教程。我使用SDL創建了我的窗口,現在我需要使用glew(請參閱教程底部的One more thing部分)。但無論我鏈接,包括,複製或定義所有我得到的是無法解析的外部符號錯誤。在VIsual studio 2010 express中使用GLEW,SDL和OpenGL的無法解析的外部符號

我:

  • 鏈接我的項目到GLEW庫文件夾
  • 添加了包括文件夾到我的include路徑
  • 複製的包括,bin和lib文件到C:\ Program Files文件在此時,相應的地圖
  • 複製glew32.dll和glew32mx.dll我的system32文件夾下
  • 包括和定義不同文件(x86)\微軟的SDK \的Windows \ v7.0A \(見截圖2)

我會讓屏幕截圖進行說話,我忘了什麼?

截圖:

理應在這裏,但由於去新用戶規則我無法將它們包含在這裏。 Here is a link

+0

您已經制作了所有這些截圖,但沒有考慮發佈鏈接錯誤。 –

+1

@BartekBanachewicz鏈接器錯誤在屏幕截圖中。 – Aaron

+1

也許你正在使用一個庫的32位版本和另一個庫的64位版本。我不確定這是否會導致鏈接器錯誤,但我知道它可能是使用多個庫時問題的根源。 – Aaron

回答

0

我認爲你需要鏈接到glew32sd.lib或glew32s.lib(取決於調試或發佈版本配置),因爲你已經定義了GLEW_STATIC。

這是我們最近完成的一個win32 glew應用程序的預編譯頭文件的代碼片段。這表明,我們聯繫到庫:我們使用glew32s.lib和glew32sd.lib(調試當量),我相信這是對GLEW的靜態庫

#pragma comment(lib, "OpenGL32.lib") 
#pragma comment(lib, "GLu32.lib") 
#pragma comment(lib, "freeglut_static.lib") 

#define GLEW_STATIC 

#if defined _DEBUG 
    #pragma comment(lib, "glew32sd.lib") 
#else 
    #pragma comment(lib, "glew32s.lib") 
#endif 

#include <GL\glew.h> 
#include <gl\GL.h> 
#include <gl\GLU.h> 

注意。

如果你引用了庫幷包含正確的文件夾,唯一的其他問題我可以想到的是,你可能可能需要將dll文件複製到您的項目的輸出文件夾。

因此,例如,如果您的項目構建到c:\ MyProject \ Debug \ MyProject.exe,請將dll複製到c:\ MyProject \ Debug。

我希望這會有所幫助。

+2

使用'pragma評論(lib'是一個非常不好的習慣,這個pragma是非標準的,不可移植的,它會強迫你以錯誤的方式思考。鏈接庫的工作,所以干擾庫引用到C++代碼中從長遠來看,這是一個糟糕的主意,請幫助自己一個忙,並且通過將庫添加到項目設置中來正確鏈接,或者更好地學習體面的構建系統 - cmake/qmake - 可以根據需要生成項目文件 - 因爲這很可能你不打算永遠使用visual studio – SigTerm

+0

什麼是非標準的?可移植到哪裏?是否有標準的方法向兩個不同的連接器發佈命令?這個視角與OP問題有什麼關係?你很想看看OPs指導鏈接器的方法,你會注意到它也是不可移植的(特定於Windows平臺)。所以,真的,謝謝你的意見,但我已經使用了VS多年,並且我不需要切換。去廣告你的工具感情的地方,其相關。 – fishfood

+0

「什麼不標準?」到C++。在C++標準中不存在。 「可移植到哪裏?」要* ANY *非微軟編譯器,包括gcc的windows版本。 「有沒有向兩個不同的連接器發佈命令的標準方式?」就在這裏。使用qmake,cmake或scons作爲構建系統。他們可以針對不同的目標平臺發佈鏈接器命令。 cmake/qmake可以生成vs項目。 「並且特定於Windows平臺」無法看到任何平臺特定的代碼。應該可以在所有使用SDL的平臺上編譯。 – SigTerm

0

這可能無法解決您的直接問題,但可能會幫助您稍後避開其他傳入。我不知道。我所提供的僅僅是另一種資源的建議,用於學習如何去做你所問的事情。

現在,我認爲您的第一個鏈接已損壞,因爲它會鏈接到我的截圖。我正要檢查教程,但不能因此。

無論如何,我一直在使用一本名爲OpenGL SuperBible 5th ed;的書,它很容易被消化。

它預示着你對3D圖形一無所知,如何包含庫,爲系統創建一個窗口等等。然而,它很細緻,不會過分難以閱讀很長一段時間。我在兩週內完成了這本書(當然,在假期期間,別無其他)。

我不以任何方式隸屬於書主,我只是很喜歡它,在我看來,你正在努力的是由它親切地處理。

相關問題