GLFW 第一响应者错误

2021-12-19 00:00:00 opengl c++ glfw

我正在尝试创建一个简单的 GLFW 窗口并成功但 xcode 给了我一个错误:

I am trying to create a simple GLFW window and a succeed but xcode gives me an error:

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 上运行的提示,但由于某种原因,我仍然遇到错误,所以我希望有人可以帮助我解决这个错误.

The part that is confusing me is from what I have looked up is that including the hints that I have will allow it to work on mac but for some reason I am stilling getting the errors so I was hoping that someone could help me solve this error.

推荐答案

这个似乎表明这是 macOS Sierra 中的一个已知错误,并且查看 git-repo 似乎等待修复.但是,看起来(当前)他们网页上的最新版本 并未更新.

This seems to indicate that this is a known bug in macOS Sierra, and looking at the git-repo it seems to be fixed. However, it does not look like the (currently) latest version on their webpage has been updated.

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

If you have installed GLFW from their website, I recommend pulling the code from git and compiling it locally.

(有关从来源.)

相关文章