在使用Qt Creator创建并编译新项目时,可能会遇到以下错误:
/usr/bin/ld: cannot find -lGL
collect2: error: ld returned 1 exit status
make: *** [untitled1] Error 1
18:07:41: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project untitled1 (kit: Desktop Qt 5.1.0 GCC 32bit)
When executing step 'Make'
这个问题通常出现在新安装系统或者配置不完整时,原因是系统找不到OpenGL库。以下是几种解决方法。
方法一:安装必要的OpenGL开发库
在Ubuntu上,安装libgl1-mesa-dev
包可以解决这个问题。这是推荐的解决方法:
bash
sudo apt install libgl1-mesa-dev
方法二:手动创建符号链接
如果安装libgl1-mesa-dev
包后问题仍然存在或者你希望避免安装额外的软件包,你可以手动创建符号链接:
-
首先使用
locate
命令找到libGL
库的位置:bashlocate libGL
输出可能类似于:
/usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
-
然后创建一个指向该库的符号链接(假设库位于
/usr/lib/x86_64-linux-gnu
):bashsudo ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 /usr/lib/libGL.so
方法三:修改.pro文件
如果你的项目不需要GUI支持,可以在.pro
文件中移除对GUI模块的依赖,这样链接器就不会再寻找lGL
库:
pro
QT -= gui
方法四(适用于RedHat系发行版):使用yum安装相关库
在RedHat系发行版如CentOS或Fedora上,可以使用yum
来安装必要的OpenGL开发库:
bash
yum provides */libGL.so
yum install mesa-libGL-devel mesa-libGLU-devel
方法五:重新安装相关库
在一些情况下,即使安装了必要的库也可能因为链接损坏等问题导致错误。可以尝试重新安装库:
bash
sudo apt install --reinstall libgl1-mesa-glx