QT 5.7.0 GCC 4.9.1 我在安装QT后创建了一个简单的小部件项目(没有编写单个代码,没有更改设置,仅将几个控件拖到表单上)并进行了测试编译。我收到错误消息:
:-1: error: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../libGL.so when searching for -lGL
:-1: error: skipping incompatible /lib/libGL.so when searching for -lGL
:-1: error: skipping incompatible /usr/lib/libGL.so when searching for -lGL
:-1: error: cannot find -lGL
:-1: error: collect2: error: ld returned 1 exit status
我认为它试图链接到我64位机器中的32位OpenGL。/USR/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../../libgl.so确实位于/usr/lib/libgl中。我认为64位版本是/usr/lib64/libgl中的一个版本。如何更改链接路径以使其链接到正确的库?
这似乎您缺少编译32位二进制文件所需的库。
尝试运行:
sudo yum install glibc-devel.i686 libgcc.i686 libstdc++-devel.i686
这就是我解决这个问题的方式。
-
locate libGL.so
并找到正确的64位版本(我使用了最新版本); - 在QT LIB路径中创建链接:
ln -s /usr/lib64/libGL.so.352.79 ~/Qt/5.7/gcc_64/lib/libGL.so