7

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

我有:

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

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

截图:

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

4

2 回答 2

0

我认为您需要链接到 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 <GL\glew.h>
#include <gl\GL.h>
#include <gl\GLU.h>

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

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

例如,如果您的项目构建到 c:\MyProject\Debug\MyProject.exe,请将 dll 复制到 c:\MyProject\Debug。

我希望这有帮助。

于 2013-06-03T23:44:34.507 回答
0

这可能无法解决您眼前的问题,但可能会帮助您稍后躲避其他传入的问题。我不知道。我提供的只是对另一种资源的推荐,用于学习如何做你所问的事情。

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

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

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

我与书主没有任何关系,我只是非常喜欢它,在我看来,你正在努力解决的问题已经被它优雅地处理了。

于 2013-07-16T17:41:25.057 回答