glfw 包含了opengl吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了glfw 包含了opengl吗相关的知识,希望对你有一定的参考价值。

不包含。GLFW是在openGL里帮你简单建立窗口用的。跟GLUT/freeglut类似。

但是openGL都是跟着驱动来的。只要你装了显卡驱动,就会有openGL。直接用就好。

一般来说假如用来开发的话,GLFW+GLEW+openGL就够用了。GLEW是用来智能载入很多openGL扩展函数(extensions)的。

编译的时候先载入openGL,然后是GLEW,最后是GLFW。假如是windows的话,也许还需要gdi32。
$ g++ -Wall -g main.cpp -lglfw -lglew32 -lopengl32

之类的。
参考技术A 一般来说不包含。。。我下载来看了,包里是没有GL头的

如何将 GLFW 与 openGL 一起使用?

【中文标题】如何将 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 &lt;GL/glfw3.h&gt;,但没有成功。

这是我的完整代码:

#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 3+ 请求,glfw3 不绘图?

使用 GLFW/GLEW 进行 OpenGL 编程

OpenGL 和 GLFW 中的主要和次要是啥意思?

GLFW扩展库

无法在 Visual Studio 2019 上包含 GLFW/glfw.h

如何将 GLEW 和 GLFW 以及 OpenGL 链接到 MingW 的 g++