【发布时间】:2021-01-17 18:59:30
【问题描述】:
我一直在尝试让一个 glfw 应用程序在 Linux Mint 上运行并忍受了一段时间。我确定我遗漏了一些明显的东西,但我已经在互联网上查看了所有内容。我之前在 Windows 和 Visual Studio 上使用过 glfw。
这是我的令人兴奋的代码:
#include <stdio.h>
#include "GLFW/glfw3.h"
int main(){
printf("hello world!\n");
if (!glfwInit()){
// Initialization failed
}
glfwTerminate();
return 0;
}
是的,只是试图初始化 glfw。
我的 bash 脚本:
#!/bin/bash
gcc -Wall -Wextra -g -v -Iinclude -Llib -o morg src/main.c
所以当我运行那个 bash 脚本时,我得到了这个错误:
/home/[username]/Documents/morg/src/main.c:6: undefined reference to `glfwInit'
/home/[username]/Documents/morg/src/main.c:9: undefined reference to `glfwTerminate'
很好,所以我可能缺少一些依赖项。让我们试试看。我找到this SO 页面并通过实验将 bash 脚本更改为:
#!/bin/bash
gcc -Wall -Wextra -g -v -Iinclude -Llib -lglfw3 -lGL -o morg src/main.c
我收到一个新错误/usr/bin/ld: cannot find -lGL。
我查了一下。我发现this 程序员最终有一个损坏的符号链接,他们通过运行sudo apt-get install --reinstall libgl1-mesa-dev 修复了该链接。当然,这对我也不起作用。
libGL 在我的系统上,我可以在我的文件中看到它,并且其他 OpenGL 程序工作正常。
此外,关于 glfw 需要什么依赖项,我得到了相互矛盾的信息。例如我遇到了g++ Test.cpp -lglfw -lGL -lm -lX11 -lpthread -lXi -lXrandr -ldl。据我所知,实际的 glfw 文档没有提到任何这些。有没有人有在 GNU Linux 上使用 glfw 的参考、文档、指南或教程。我找到了this 指南,可以预见它也不起作用。
这这对其他人来说很难吗?我并没有慢慢失去理智。
【问题讨论】: