我正在使用这个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图形一无所知,如何包含库,为您的系统创建窗口等。但是,它非常详细,而不会在很长一段时间内过于难以阅读。我在两周内读完了这本书(好吧,在假期里,什么都不做)。
我与书主没有任何关系,我只是非常喜欢它,在我看来,你正在挣扎的事情被它优雅地处理了。