2016-12-14 71 views
4

我试图创建一个简单的GLFW窗口和成功,但Xcode中给我一个错误:GLFW第一响应错误

2016-12-14 10:16:40.412191 CREngine[830:21929] [General] ERROR: Setting <GLFWContentView: 0x100369850> as the first responder for window <GLFWWindow: 0x10033ea00>, but it is in a different window ((null))! This would eventually crash when the view is freed. The first responder will be set to nil. 
(
    0 AppKit        0x00007fff9710b9a4 -[NSWindow _validateFirstResponder:] + 566 
    1 AppKit        0x00007fff968fc9eb -[NSWindow _setFirstResponder:] + 31 
    2 AppKit        0x00007fff969a466a -[NSWindow _realMakeFirstResponder:] + 406 
    3 AppKit        0x00007fff969a4480 -[NSWindow makeFirstResponder:] + 123 
    4 libglfw.3.dylib      0x00000001000a9895 _glfwPlatformCreateWindow + 631 
    5 libglfw.3.dylib      0x00000001000a5430 glfwCreateWindow + 487 
    6 CREngine       0x0000000100000e87 main + 135 
    7 libdyld.dylib      0x00007fffadd2d255 start + 1 
) 
Program ended with exit code: 0 

我使用的代码是:

#include <GLFW/glfw3.h> 

int main(void) 
{ 
    GLFWwindow* window; 

    /* Initialize the library */ 
    if (!glfwInit()) 
     return -1; 

    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); 
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2); 
    glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); 
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); 

    /* Create a windowed mode window and its OpenGL context */ 
    window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL); 
    if (!window) 
    { 
     glfwTerminate(); 
     return -1; 
    } 

    /* Make the window's context current */ 
    glfwMakeContextCurrent(window); 

    /* Loop until the user closes the window */ 
    while (!glfwWindowShouldClose(window)) 
    { 
     /* Render here */ 
     glClear(GL_COLOR_BUFFER_BIT); 

     /* Swap front and back buffers */ 
     glfwSwapBuffers(window); 

     /* Poll for and process events */ 
     glfwPollEvents(); 
    } 

    glfwTerminate(); 
    return 0; 
} 

的一部分是让我感到困惑的是,我所看到的是,包括我已经允许它在mac上工作的提示,但由于某种原因,我仍然在收到错误,所以我希望有人能帮我解决这个错误。

+1

望着https://github.com/glfw/glfw/issues/876这似乎是一个错误。你正在运行最新版本的GLFW吗? (并且你使用的是macOS Sierra?) – pingul

+0

@pingul在 – Matthew

+0

上是和哪个版本的Sierra?这个https://forums.developer.apple.com/thread/49052似乎表明这也是苹果的问题。 – pingul

回答

4

This似乎表明这是macOS Sierra中的一个已知错误,并且看着git-repo它似乎是固定的。但是,它看起来不像(当前)latest version on their webpage已更新。

如果您从他们的网站安装了GLFW,我建议从git中提取代码并在本地进行编译。

(编辑:见this一些有用的细节关于从源头上建立名为.dylib文件。)