glfwinit()失败.我应该怎么办
glfwInit() fails. What should I do?
所以,我无法创建任何窗口,因为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"
我已经有几天了这个问题,无法在网上找到任何有用的东西。我终于能够发现这个问题:使用X11系统时安装了glfw-wayland
软件包。卸载Wayland包并安装glfw-x11
成功解决GLFW无法初始化。
这个问题是在二十多年前提出的,但我仍然回答,希望它可以使某人免于被阻止的日子。
相关文章:
- 我应该使用什么来代替void作为变体中的替代类型之一
- boost::asio::steady_timer()与sleep()我应该使用哪一个
- 我应该实现右值推送功能吗?我应该使用std::move吗
- 我是C++编程的新手,这些代码之间有什么区别,我应该使用哪一个
- 我应该删除矢量<short>吗?
- 我应该如何修改此代码以使用给定字符串中的字母打印菱形图案
- 我应该在锁定TBitmap画布后解锁它吗
- 为什么我应该在异常处理中使用std::cerr而不是std::cout
- 我应该避免多重实现继承吗
- 为了方便起见,我应该避免公开私有字段变量吗
- 我收到同义重复编译器错误。我应该如何修复"类型"X"的参数与类型"X"的参数不兼容?
- 违反const正确性:我应该现实地期待什么问题
- 我应该如何表示我拥有的连续元素序列?
- 我应该将除 .cpp 以外的其他文件添加到 git 中吗?
- 我应该如何从 stdin C++ 中读取可变长度的格式字符串?
- 我有一个对象,它将在整个程序的持续时间内实例化,但一个类成员不会,我应该动态分配它吗?
- 我应该如何捕捉out_of_range异常?
- 我应该声明所有不抛出 noexexcept 的成员/函数吗?
- OpenCV 我应该使用智能指针来防止内存泄漏吗?
- glfwinit()失败.我应该怎么办