2016-12-14 59 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文件。)