opengl glfwInit()失败,我该怎么办?

zi8p0yeb  于 2022-11-04  发布在  其他
关注(0)|答案(1)|浏览(467)

因此,我无法创建任何窗口,因为glfwInit()失败。
这是我的CMakeLists.txt

cmake_minimum_required(VERSION 3.7)
project(DuperTest)

set(CMAKE_CXX_STANDARD 14)

set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
add_subdirectory(glfw-3.2.1)

set(SOURCE_FILES main.cpp)
add_executable(DuperTest ${SOURCE_FILES})

find_package(OpenGL REQUIRED)
include_directories(${OPENGL_INCLUDE_DIRS})

target_link_libraries(DuperTest glfw)
target_link_libraries(DuperTest ${OPENGL_LIBRARIES})

还有我的代码:


# include <iostream>

# include <GLFW/glfw3.h>

int main()
{
    if (!glfwInit())
    {
        std::cout << "glfwInit" << std::endl;
        glfwTerminate();
        return -1;
    }

    return 0;
}

我完全迷路了。我该怎么补救?

更新日期:

添加了错误回调。它返回了以下消息:

"X11: The DISPLAY environment variable is missing"
kkbh8khc

kkbh8khc1#

我有这个问题好几天了,在网上找不到任何有帮助的东西。我终于能够发现这个问题:当我使用X11系统时安装了glfw-wayland软件包。卸载wayland软件包并安装glfw-x11成功地解决了GLFW无法初始化的问题。
这个问题在五年前就被问到了,但我仍然回答,希望它能让一些人免于被封锁的日子。

相关问题