64位CentOS中Qt编译提示找不到-lGL库,如何解决?
解决CentOS下Qt编译报错
cannot find -lGL的问题 这个问题我碰到过好多次了,本质是链接器找不到不带版本后缀的libGL.so符号链接——你的系统里只有带版本号的libGL.so.1和libGL.so.1.2.0,而Qt编译时默认找的是无版本后缀的库文件。给你两个靠谱的解决办法:
方法一:手动创建软链接(快速临时解决)
直接在/usr/lib64目录下创建指向现有库的软链接,让链接器能找到它:
sudo ln -s /usr/lib64/libGL.so.1 /usr/lib64/libGL.so
执行完之后,重新构建你的Qt项目,应该就能通过编译了。
方法二:安装官方开发包(更推荐,长期稳妥)
手动建软链接虽然快,但如果后续系统更新可能会出问题,更稳妥的方式是安装mesa-libGL-devel开发包,它会自动配置好正确的软链接,还会附带Qt开发需要的头文件:
- 如果你用的是CentOS 7或更早版本:
sudo yum install mesa-libGL-devel
- 如果你用的是CentOS 8及以上版本(用dnf代替yum):
sudo dnf install mesa-libGL-devel
验证解决效果
完成上述操作后,再执行locate libGL.so,应该能看到/usr/lib64/libGL.so这个文件了,此时重新构建你的Qt窗口应用,cannot find -lGL的报错就会消失。
内容的提问来源于stack exchange,提问作者vico
相关产品推荐
相关产品推荐

