我正在使用带有MinGW编译器的Code :: Blocks。这些是我的包括:
#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();
虽然效果很好。
如果我尝试同时包含过剩和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'
但这些不包括我以前得到的错误!根据我的理解,我可以包括过剩或免费,但不能同时包括两者。我怎么知道这个?谢谢!
编辑:
链接器选项:
-lfreeglut
-lopengl32
-lglu32
完全消除了问题,现在它按预期工作。
答案 0 :(得分:0)
有关未定义引用的后续错误是链接器错误,而不是编译器错误。您必须将程序(除了包含头文件)与glut和/或freeglut库链接起来。这是通过向链接器添加以下选项来完成的:
-lfreeglu