GLUT 和 freeglut includes 不能一起工作 (MinGW)

GLUT and freeglut includes don't work together (MinGW)

我正在使用 Code::Blocks 和 MinGW 编译器。这些是我的包括:

#ifdef __APPLE__
#include <OpenGL/OpenGL.h>
#include <GLUT/glut.h>
#else
#include <GL/glut.h>
#endif

如果我尝试使用函数

glutMainLoopEvent();

它抛出一个错误:

'glutMainLoopEvent' was not declared in this scope.

函数

glutMainLoop();

虽然效果很好。

如果我尝试同时包含 glut 和 freeglut(我已经正确安装了它,我确保按照步骤仔细观看了几次视频),如下所示:

#ifdef __APPLE__
#include <OpenGL/OpenGL.h>
#include <GLUT/glut.h>
#else
#include <GL/glut.h>
#include <GL/freeglut.h>
#endif

我收到 24 个错误,例如:

undefined reference to `_imp____glutInitWithExit@12'
undefined reference to `_imp____glutCreateWindowWithExit@8'
undefined reference to `glClearColor@16'

但是这些不包括我之前遇到的错误!!据我所知,我可以包括 glut 或 freeglut,但不能同时包括两者。我该如何解决这个问题?谢谢!

编辑:

链接器选项:

-lfreeglut
-lopengl32
-lglu32

完全解决了问题,现在可以正常使用了。

后来关于未定义引用的错误是linker 错误,而不是编译器错误。你必须 link 你编程(除了包括头文件)以防止过剩 and/or freeglut 库。这是通过向 linker 添加以下选项来完成的:

-lfreeglu