Ubuntu 16.04 安裝 QT Create 5.3.1 (qt-opensource-linux-x86-5.3.1.run)后新建一個 QT Quick 的工程。直接編譯,出現如下錯誤的提示:
qt cannot find lgl
剛開始按網上的方法,需要修改依賴庫的版本,但依賴是一層接着一層,唉......
最后找到如下的解決方法(參考如下鏈接: http://blog.csdn.net/u012175418/article/details/52078291):
leozheng@ubuntu:~$ locate libGL
/usr/lib/i386-linux-gnu/libGLEW.so.1.13
/usr/lib/i386-linux-gnu/libGLEW.so.1.13.0
/usr/lib/i386-linux-gnu/libGLEWmx.so.1.13
/usr/lib/i386-linux-gnu/libGLEWmx.so.1.13.0
/usr/lib/i386-linux-gnu/libGLU.so.1
/usr/lib/i386-linux-gnu/libGLU.so.1.3.1
/usr/lib/i386-linux-gnu/mesa/libGL.so.1
/usr/lib/i386-linux-gnu/mesa/libGL.so.1.2.0
leozheng@ubuntu:~$ ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/libGL.so
ln: failed to create symbolic link '/usr/lib/libGL.so': Permission denied
leozheng@ubuntu:~$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/libGL.so
沒有失敗的提示,說明成功了!重新打開 QT Create,編譯成功。
如果在代碼中加入其它 Qt 模塊,如: include <QtGui>/<QtWidgets> 等,將會出現新問題:找不到 GL/gl.h 文件。
通過追蹤錯誤來源,發現在 QtGui 模塊的頭文件中有包含 GL/gl.h 的部分,此時在 include <QtGui>/<QtWidgets> 等命令前加上: #define QT_NO_OPENGL,則可解決問題。
或者在命令窗運行: sudo apt-get install mesa-common-dev