/usr/bin/x86_64-linux-gnu-ld:找不到 -lGL

/usr/bin/x86_64-linux-gnu-ld:找不到 -lGL

这篇文章是从德语翻译过来的。原文请参见修订历史。


我在 Qt Creator 中编写了以下程序。

错误消息指的是 Ubuntu。我在配备 Intel i5 的设备上使用 Ubuntu 18.04。

我已经研究了好几天,但还没有找到解决方案。

可能存在什么问题?我该如何解决?

#include <QApplication>
#include <QPushButton>

int main(int argc, char* argv[])
{
    QApplication app(argc, argv);
    QPushButton button("Hallo Welt und so weiter");

    button.move(250,300);
    button.show();

    return app.exec();
}

:-1: Fehler: collect2: error: ld returned 1 exit status

g++ -Wl,-rpath,/opt/Qt/5.11.1/gcc_64/lib -o HalloWelt main.o   -L/opt/Qt/5.11.1/gcc_64/lib -lQt5Widgets -lQt5Gui -lQt5Core -lGL -lpthread 
/usr/bin/x86_64-linux-gnu-ld: cannot find -lGL
Makefile:254: recipe for target 'HalloWelt' failed
collect2: error: ld returned 1 exit status
make: *** [HalloWelt] Error 1
16:12:14: Der Prozess "/usr/bin/make" wurde mit dem Rückgabewert 2 beendet.
Fehler beim Erstellen/Deployment des Projekts HalloWelt (Kit: Desktop Qt 5.11.1 GCC 64bit)
Bei der Ausführung von Schritt "Make"
16:12:14: Verstrichene Zeit: 00:00.

答案1

一开始,你有 Qt 是很奇怪的/opt

正确的方法是从存储库安装 Qt 5.9.5 和其他开发包:

sudo apt-get install qt5-default build-essential checkinstall \
libc6-dev libssl-dev libexpat1-dev libgl1-mesa-dev libqt4-dev \
libavcodec-dev libavutil-dev pkg-config

然后使用以下方法编译你的程序

g++ HalloWelt.cpp $(pkg-config --cflags Qt5Widgets) $(pkg-config --libs Qt5Widgets) -fPIC -o HalloWelt

并运行

./HalloWelt

你好世界

如果您只想修复-lGL错误,您应该安装一个包:

sudo apt-get install libgl1-mesa-dev

相关内容