CentOS遇到Qt编译问题(error: cannot find -lGL)

本文介绍如何在CentOS系统中安装Qt5.5.1,并解决因缺少OpenGL库而导致的编译错误。通过执行特定命令安装必要的OpenGL库文件,可以顺利进行Qt项目的编译。

1、安装Qt,进入CentOS系统的终端,依次执行以下命令
chmod +x qt-opensource-Linux-x64-5.5.1.run
./qt-opensource-linux-x64-5.5.1.run


2、笔者CentOS 7 64位,安装完成Qt5.5.1。随意新建一个Qt Widgets Application。

结果遇到Qt编译问题,提示信息如下:

error: cannot find -lGL

error: collect2: error: ld returned 1 exit status

原因是系统缺乏相应的OpenGL库文件造成,解决方案如下:

联网的前提下,进入CentOS系统的终端,依次执行以下命令,即可解决。注意,当提示Is this ok[y/d/N]:时,请输入"y"。

su root

yum install mesa-libGL-devel mesa-libGLU-devel

yum install freeglut-devel

CentOS系统下,`/bin/ld: cannot find -lGL` 报错通常表示链接器无法找到OpenGL库文件。以下是一些解决该问题的方法: ### 安装OpenGL开发包 在CentOS系统中,OpenGL相关的开发包通常可以通过 `yum` 进行安装。可以安装 `mesa-libGL-devel` 包,它包含了OpenGL库的开发文件。 ```bash sudo yum install mesa-libGL-devel ``` ### 检查库文件路径 如果库文件已经安装,但链接器仍然无法找到它们,可能是因为库文件所在的路径没有被包含在系统的库搜索路径中。可以通过以下方法解决: - **临时添加库搜索路径**:在编译命令中使用 `-L` 选项指定库文件的搜索路径。例如,如果库文件位于 `/usr/local/lib` 目录下,可以使用以下命令进行编译: ```bash gcc your_program.c -o your_program -L/usr/local/lib -lGL ``` - **永久添加库搜索路径**:可以通过修改 `/etc/ld.so.conf` 文件或在 `/etc/ld.so.conf.d/` 目录下创建一个新的配置文件来添加库搜索路径。例如,创建一个名为 `custom-libs.conf` 的文件,并在其中添加库文件所在的路径: ```plaintext /usr/local/lib ``` 然后运行以下命令更新动态链接器的缓存: ```bash sudo ldconfig ``` ### 检查库文件是否存在 可以使用 `find` 命令查找系统中是否存在 `libGL.so` 文件: ```bash sudo find / -name "libGL.so*" ``` 如果没有找到该文件,可能需要重新安装相关的开发包。 ### 软链接缺失的库文件 如果找到了库文件,但文件名与链接器查找的文件名不一致,可以创建一个软链接来解决。例如,如果找到的库文件名为 `libGL.so.1`,可以创建一个名为 `libGL.so` 的软链接: ```bash sudo ln -s /path/to/libGL.so.1 /usr/lib/libGL.so ``` ### 检查环境变量 确保 `LD_LIBRARY_PATH` 环境变量包含了库文件所在的路径。可以通过以下命令临时设置该环境变量: ```bash export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/library ``` 如果希望永久设置该环境变量,可以将上述命令添加到 `~/.bashrc` 或 `/etc/profile` 文件中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值