1. 程式人生 > >基於Linux(中標麒麟)上QT的環境搭建——解決cannot find lGL的問題

基於Linux(中標麒麟)上QT的環境搭建——解決cannot find lGL的問題

一、下載QT安裝包


一、問題描述:

在中標麒麟上配置好QT的環境後,新建一個工程,不做其他的任何操作,直接執行都會報cannot find lGL的錯誤。如圖所示:

   這個問題找了很久,網上有的資料都是Ubuntu上的解決方式,Ubuntu上的解決方式是執行命令sudo apt-get install libqt4-dev或者sudo apt-get install libgl1-mesa-dev或者libgl1-mesa-dev或者libglu1-mesa-dev;但這種方式完全不適合中標麒麟,最後還是研究工程編譯的原始碼,找到了問題所在:

二、問題分析:

出現上述問題主要的原因是由於QT Creator在編譯執行時查詢的libGL的庫是不帶版本號的,及它查詢的是libGL.so,而原本系統中在usr/lib64路徑下只有libGL.so.1、libGL.so.1.2.0、libGLU.so.1、libGLU.so.1.3.1,字尾中待了版本號,導致QT程式編譯時找不到對應的庫,所以需要複製或建立連結命名為libGL.so。

三、解決方式:

(1)檢測當前系統中libGL相關的包

進入終端,在最上一級上輸入命令ls  /usr/lib64/libGL,按Tab鍵,此時會出現lib64下所有的libGL相關的檔案,如下圖所示:

(2)解決該問題有兩種方式,一種是建立快捷指向libGL.so.1的方式,另外一種是直接複製的方式。

  • 建立快捷的方式(建議以這種方式解決)

在終端中在終端中進入到usr/lib64的路徑下,輸入命令:ln libGL.so.1 libGL.so ,可參照下圖所示,此處輸入的含義就是建立一個連結的快捷方式名稱叫libGL.so其實指向的是libGL.so.1。

  • 直接複製的方式

在終端中進入到usr/lib64的路徑下,輸入命令:cp libGL.so.1 libGL.so,可參照下圖,此方式的含義是複製一個檔案libGL.so.1,複製後的檔名稱叫libGL.so。

轉載地址:http://www.cnblogs.com/yy-zl/p/5648851.html