在VIsual studio 2010 express中使用GLEW,SDL和OpenGL的未解析外部符号



我正在使用这个OpenGL教程。我使用 SDL 创建我的窗口,现在我需要使用 glew(请参阅教程底部的"还有一件事"部分)。但是无论我链接、包含、复制或定义什么,我得到的都是未解决的外部符号错误。

我有:

  • 将我的项目链接到 GLEW Lib 文件夹
  • 将包含文件夹添加到我的包含路径
  • 已将包含、bin 和 lib 文件复制到适当的映射中的 C:\Program Files (x86)\Microsoft SDK\Windows\v7.0A\
  • 将 glew32.dll 和 glew32mx.dll 复制到我的 System32 文件夹中
  • 包含和定义的不同文件(见屏幕截图 2)

我会让截图说话,我忘记了什么?

截图:

应该去这里,但由于新的用户规则,我不能将它们包含在这里。这是一个链接

我认为您需要链接到glew32sd.lib或glew32s.lib(取决于调试或发布构建配置),因为您已经定义了GLEW_STATIC。

这是我们最近完成的 win32 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 <GLglew.h>
#include <glGL.h>
#include <glGLU.h>

请注意,我们使用了glew32s.lib和glew32sd.lib(调试等效物),我相信这是glew的静态库。

如果您已正确引用库并包含文件夹,我能想到的唯一另一个问题是您可能需要将 dll 文件复制到项目的输出文件夹中。

例如,如果您的项目生成到 c:\MyProject\Debug\MyProject

.exe,请将 dll 复制到 c:\MyProject\Debug。

我希望这有所帮助。

这可能无法解决您的直接问题,但可以帮助您以后躲避其他传入的问题。我不知道。我提供的只是对另一种资源的建议,用于学习如何做您要求的事情。

现在,我认为您的第一个链接已损坏,因为它链接到我的屏幕截图。我正要查看教程,但因此无法查看。

无论如何,我一直在使用一本名为OpenGL SuperBible 5th ed的书;这本书很容易消化。

它期望您对3D图形一无所知,如何包含库,为您的系统创建窗口等。但是,它非常详细,而不会在很长一段时间内过于难以阅读。我在两周内读完了这本书(好吧,在假期里,什么都不做)。

与书主没有任何关系,我只是非常喜欢它,在我看来,你正在挣扎的事情被它优雅地处理了。

最新更新