基於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。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM