can not find -lgl,记一次Qt Creator编译报错的解决
某次在终端使用apt 进行软维护时,提示某些软件包不再使用,可以使用autoremove进行清理。当时没多想,就依照提示使用autoremove进行了清理,具体清理了哪些地方的哪些软件包、链接,我也没仔细看。
可能正是由于此次的操作,导至后来在Qt Creator打开以前的项目时,提示:**cannot find -lgl**。
经过一番资料查找,了解到,其实是libGL.so这个文件无法被Qt Creator调用(应该是/usr/lib/ld 直接调用的libGL.so,确切地说,调用/usr/lib/libGL.so),才导致的这个提示。
libGL.so是个什么东西呢?是跟OpenGL有关的库文件。Deepin系统是应该都有的,执行以下命令查找一下:
```cmd
find /usr/lib/ -name libGL*.so
```
查到如下结果:
```cmd
/usr/lib/mesa-diverted/x86_64-linux-gnu/libGL.so
/usr/lib/mesa-diverted/x86_64-linux-gnu/libGLESv2.so
/usr/lib/mesa-diverted/x86_64-linux-gnu/libGLESv1_CM.so
/usr/lib/x86_64-linux-gnu/libGL.so
```
不仅有,还有好几个版本,但在/usr/lib 目录下,确实没有。没有那就动手建一个软链,执行命令如下:
```cmd
sudo ln -s /usr/lib/mesa-diverted/x86_64-linux-gnu/libGL.so.1.7.0 /usr/lib/libGL.so
```
接下来用Qt Creator打开项目,编译、运行,一切正常,问题得以解决。
如果你也遇到了类似的问题,以上解决思路与过程,希望能帮到你。如果你有更好的解决方案,请在评论区交流。