osx yosemite上的glfwOpenWindow失败

时间:2015-05-22 22:37:33

标签: c++ macos opengl compilation

我正在尝试在OS X Yosemite上构建并运行以下项目来玩ray ray&着色器:

https://github.com/lightbits/ray-march/blob/master/raymarch-dev.md

我不太熟悉OS X上的编译,也不熟悉openGL。

错误:

我得到了要编译的项目,但«glfwOpenWindow»失败了,

glfwOpenWindow(
width, height,
8, 8, 8, 0,
24, 8,
false ) 

我没有收到任何错误消息,也不知道失败的原因。我认为问题来自于我为构建代码库所做的工作。

我做了什么:

外部包括:

#include <glload/gl_3_1_comp.h> // OpenGL version 3.1, compatability profile
#include <glload/gll.hpp>   // The C-style loading interface
#include <GL/glfw.h>    // Context
#include <glm/glm.hpp>  // OpenGL mathematics
#include <glm/gtc/type_ptr.hpp> // for value_ptr(matrix)
#include <string>
  • 我安装了homebrew
  • 我安装了cmake
  • 我制作了GLFW-legacy
  • 我安装了glm。
  • 我在“opengl.h”中替换了

    #include <glload/gl_3_1_comp.h> // OpenGL version 3.1, compatability profile #include <glload/gll.hpp> // The C-style loading interface

用,

`#include <OpenGL/gl3.h>`
  • 我在“opengl.cpp”中删除了。

    if(glload::LoadFunctions() == glload::LS_LOAD_FAILED) return false;

  • 我当前的编译命令是:

    g++ main.cpp fileio.cpp opengl.cpp -I /usr/local/include/GL/ -L /usr/local/lib/ -framework OpenGL -lGLFW

1 个答案:

答案 0 :(得分:0)

从链接的代码中,我们{/ 3}}与

glfwOpenWindowHint(GLFW_OPENGL_PROFILE,         0); // 0 lets the system choose the profile
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR,   OPENGL_VERSION_MAJOR);
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR,   OPENGL_VERSION_MINOR);
glfwOpenWindowHint(GLFW_FSAA_SAMPLES,           fsaa);
glfwOpenWindowHint(GLFW_WINDOW_NO_RESIZE,       GL_TRUE);

opengl.cpp

一起使用
const int OPENGL_VERSION_MAJOR = 3;
const int OPENGL_VERSION_MINOR = 1; 

所以这是请求一个OpenGL 3.1上下文_在OSX上从不支持? OSX onlz支持高达GL 2.1的legacz上下文,或者以GL 3.2开头的GL核心配置文件上下文。 GLFW当然无法创建GL上下文。

我没有检查其余的代码,但你可能会明确地要求GL 3.2核心配置文件。