这篇文章是从德语翻译过来的。原文请参见修订历史。
我在 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