如何将 GLFW 与 openGL 一起使用?
Posted
技术标签:
【中文标题】如何将 GLFW 与 openGL 一起使用?【英文标题】:how to use GLFW with openGL? 【发布时间】:2016-03-15 15:54:44 【问题描述】:我正在尝试编译一个简短的 openGl 和 GLFW 代码,但我失败了.. 我已经像这样包含了所有 .h :
#include <stdio.h>
#include <stdlib.h>
#include <GL/glew.h>
#include <GL/glfw2.h>
我在linux上,所以我做了一个:
sudo zypper install libglfw2
当我这样编译时:
g++ main.cpp -lGLU
我有:
main.cpp:14:22: fatal error: GL/glfw2.h:Any file or directory
#include <GL/glfw2.h>
^
compilation terminated.
我也尝试包含#include <GL/glfw3.h>
,但没有成功。
这是我的完整代码:
#include <stdio.h>
#include <stdlib.h>
#include <GL/glew.h>
#include <GL/glfw2.h>
int main()
if (glfwInit() == false)
fprintf(stderr, "GLFW failed to initialise.\n");
return (-1);
glfwWindowHint(GLFW_FSAA_SAMPLES, 4);
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
GLFWwindow* window;
window = glfwCreateWindow(640, 480, "OPENGL", NULL, NULL);
if (!window)
fprintf(stderr, "Window failed to create\n");
glfwTerminate();
return (-1);
glfwMakeContextCurrent(window);
glewExperimental = true;
if (glewInit() != GLEW_OK)
fprintf(stderr, "Failed to initialize GLEW\n");
return (-1);
return (0);
有人知道我需要做什么来编译我的代码吗?
谢谢
【问题讨论】:
是什么让您认为glfw2.h
是有效文件?
因为我已经下载了 zypper libglfw2 所以我尝试包含它..
所以,您没有注意到 GLFW 2.x 的所有文档(显然不再在线)以及随附的各种示例都包括 glfw.h
?
你是在帮我吗?
【参考方案1】:
没有GL/glfw2.h
,而且从来没有,上面的代码使用 GLFW 3 API。有关标头路径的更多信息,请参阅Renamed library and header file。
没有理由将 GLFW 2 用于新项目,所以我会避免使用 libglfw2
包。而是看看是否有 GLFW 3 包。
【讨论】:
以上是关于如何将 GLFW 与 openGL 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章
关于OpenGL的一个not support 3.3.的问题的记录
如何将 GLEW 和 GLFW 以及 OpenGL 链接到 MingW 的 g++