我为 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
如果我能提供任何(合理的)想法来解决这个问题,我将不胜感激。 谢谢。
我已经尝试过的事情:
检查 libdecor 安装
sudo pacman -S libdecor
检查 libdecor 依赖项
ldd /usr/lib/libdecor-gtk.so
(已全部安装)
安装GLFW-X11和-Wayland(单独安装或同时安装,没有改变问题)
sudo pacman -S glfw-x11
sudo pacman -S glfw-wayland
睡在上面
为什么你使用 cmake 并像从控制台一样构建而不是通过鼠标单击?您可以尝试 Rider 或其他 IDE,在其中您可以看到编译器参数,可能缺少链接库,请检查此类库参数的示例,它们必须出现在输出中。像“-l lfilename.so”这样的东西