libdecor-gtk-警告:无法初始化 GTK。使用glfwinit时出现

问题描述 投票:0回答:1

我为 bgfx 设置了一个测试项目,我正在尝试学习它。 问题是,我无法让 GLFW 正确初始化。

当前存在的代码片段是这样的:

#include <bgfx/bgfx.h>
#include <GLFW/glfw3.h>
#include <iostream>

#define WINDOW_WIDTH 1920
#define WINDOW_HEIGHT 1080

int main(int argc, char const *argv[])
{
    std::cout << "Initializing GLFW\n";
    glfwInit();

    std::cout << "Creating window\n";
    GLFWwindow *window = glfwCreateWindow(WINDOW_WIDTH, WINDOW_HEIGHT, "Hello World", NULL, NULL);

    std::cout << "Initializing bgfx\n";
    bgfx::init();

    std::cout << "Exiting" << std::endl;
    return 0;
}

控制台执行是这样的:

cmake . && make && valgrind --leak-check=full --log-file="yay.log" ./BGFX_Testing

-- Configuring done (0.0s)
-- Generating done (0.0s)
-- Build files have been written to: /home/entropy/CLionProjects/BGFX_Testing
[ 50%] Building CXX object CMakeFiles/BGFX_Testing.dir/main.cpp.o
[100%] Linking CXX executable BGFX_Testing
[100%] Built target BGFX_Testing
Initializing GLFW
libdecor-gtk-WARNING: Failed to initialize GTK
Failed to load plugin 'libdecor-gtk.so': failed to init
Creating window
Initializing bgfx
Exiting

注意事项: 如果需要,我可以提供 CMakeList.txt 和 valgrind yay.log (1055) 我发现的类似问题的唯一问题是this,它没有经过验证的答案,一个似乎有用的答案,但这并没有改变我的问题。

操作系统信息: 内核:6.6.34-1-MANJARO CPU:AMD 锐龙 7 5700X (16) @ 3.400GHz GPU:AMD ATI Radeon RX6700XT

如果我能提供任何(合理的)想法来解决这个问题,我将不胜感激。 谢谢。

我已经尝试过的事情:

  1. 检查 libdecor 安装

    sudo pacman -S libdecor

  2. 检查 libdecor 依赖项

    ldd /usr/lib/libdecor-gtk.so
    (已全部安装)

  3. 安装GLFW-X11和-Wayland(单独安装或同时安装,没有改变问题)

    sudo pacman -S glfw-x11
    sudo pacman -S glfw-wayland

  4. 睡在上面

c++ linux shared-libraries c++20 glfw
1个回答
0
投票

为什么你使用 cmake 并像从控制台一样构建而不是通过鼠标单击?您可以尝试 Rider 或其他 IDE,在其中您可以看到编译器参数,可能缺少链接库,请检查此类库参数的示例,它们必须出现在输出中。像“-l lfilename.so”这样的东西

通过g++编译将.so文件链接到.cpp文件

© www.soinside.com 2019 - 2024. All rights reserved.