glutInitContextVersion() 在 glut 库中缺失
glutInitContextVersion() is missing from glut library
我正在练习一些opengl代码,当我想通过glutInitContextVersion()强制opengl上下文使用某个版本的opengl时,编译过程失败并给出以下消息:-
使用未声明的标识符"glutInitContextVersion"
我想解决这个问题,所以我让我的代码尽可能简单
法典
#include "File.h"
#include <GLUT/GLUT.h>
#include <OpenGL/OpenGL.h>
using namespace std;
int main ()
{
glutInitContextVersion(3,2);
return 1;
}
但是,我能够使用其他 glut 函数而没有任何错误或警告消息
我在装有OS X 10.9.1的Macbook air上运行Xcode 4.4.1
您可以使用 OS X 10.9 的 Xcode 版本附带的 GLUT 创建 3.2+ 核心配置文件上下文。您只需要使用不同的界面即可。您需要将GLUT_3_2_CORE_PROFILE
标志添加到glutInitDisplayMode()
调用中,而不是调用glutInitContextVersion()
:
glutInitDisplayMode(... | GLUT_3_2_CORE_PROFILE);
您还需要在<GLUT/glut.h>
之前包含<OpenGL/gl3.h>
才能使用 GL3 及更高版本的功能。
整个事情将生成一堆编译器警告,因为 GLUT 在 OS X 10.9 中被标记为已弃用。我对相关问题的回答包含有关如何禁用这些警告的说明:Mac OSX 10.9 中的 Glut 弃用,IDE:QT Creator。
我遇到了类似的问题,我没有#include <GL/freeglut.h>
."glutInitContextVersion()"是freeglut添加的一个新函数,所以除了glut之外,还需要包含freeglut。
的开发在很多年前就结束了,这实际上是一个非标准的扩展(在FreeGLUT中添加)。OS X 附带了自己的标准 GLUT (3.x) 实现。虽然既然您在问题中提到了OS X 10.9,但值得指出的是,如果您尝试使用它,编译器将生成各种烦人的弃用警告。
如果你想使用OS X附带的框架在OS X上获取3.2核心上下文,你必须使用CGL(C)或NSOpenGL(Objective C)。
如果您坚持使用 GLUT,则需要为 OS X 找到一个 FreeGLUT 端口,而不是平台附带的框架。这当然意味着跟踪其他依赖项,但我认为这没什么大不了的。请记住停止包含 Xcode 附带的 GLUT 标头。
- 使用 GLUT 使用键停止动画?
- GLEW/GLUT:调用init并创建一个窗口后,取消初始化并重新初始化?
- OpenGL Glut显示功能在Mojave上显示黑屏
- GLUT 无法获得米利斯精度的时间
- GLUT 问题:重新声明 c++ 内置类型'wchar_t'时出错
- 在macOS上编译GLEW和GLUT?
- 在 CLion (MacOS) 中使用 OpenGL 和 GLUT 库时出现链接错误
- 带 GLUT 的黑屏?
- 如何将整个C Glut程序编写为可以在另一个程序中调用的函数
- C++ GLUT 使对象在视口外消失
- C++ 编译器抛出 GLUT 错误
- 连接GLUT和QGLViewer的问题
- 使用 GLUT/FreeGLUT 创建核心上下文?
- 如何将 GLUT 库设置为 Clion
- OpenGL / GLUT - 许多未定义的引用
- Glut和Gnuplot窗口不同时出现
- 无法在openGL和GLUT中为我想要的确切对象设置动画
- 我试图运行OpenGL,但Glut屏幕只是呈现一个白色屏幕
- Glut计时器/空闲功能未更新
- 在GLUT中每秒产生2个敌人