Linux下QT、cannot find -lGL、


近日在虛擬機下的QT5.11.2安裝出現了一個bug,折騰好久才搞定。

環境:vmware + debain 9.5 + qt5.11.2 。 QT_DIR = /Qt5.11.2/5.11.2/gcc_64/mkspecs

 

 

找了各大網站、博客,基本都是說直接安裝openGL的,然而我的虛擬機安裝openGL總是出各種錯。未果。

這里推薦這篇博文的解決方案: https://www.cnblogs.com/chujian1120/p/5460772.html

如果能夠解決就不要繼續往下看了,但是,如果find找不到libGL的動態庫,那么就要繼續往下看了。

 

參考 https://www.cnblogs.com/coding-my-life/p/5677256.html

總的來說就是,我們寫的簡單項目可能大部分用不到OpenGL,但是GUI模塊是默認包含OpenGL的,我們看API就知道。

 

只要是GUI工程,就默認給Makefile加上-lGL的編譯選項。

報錯的根源就在於Makefile文件中多了一個-lGL的編譯選項。

我們可以自己用qmake命令,去生成Makefile文件。

所以我們要做的就是把這個-lGL給干掉。

太長不看版:直接修改{QT_DIR}/modules/qt_lib_gui_private.pri,去掉第15行的 -lGL 即可,再次生成的Makefile中不會再出現 -lGL。

首先我們得知道qmake生成的makefile為啥會有這個-lGL,

要了解這個,首先我們得了解一些qmake的原理和配置。我也只是了解個皮毛,具體還是需要去看手冊和腳本。

我的簡單理解,就是通過一系列的腳本文件來生成與對應的pro文件和Makefile文件。

默認生成的pro文件中自帶 gui 和 core 模塊。而這兩個模塊的配置文件在 {QT_DIR}/modules文件夾下。

由於我們的是qt項目,所以qmake會去{QT_DIR}/features/文件夾下去找配置文件;之后會調用qt_module_pris.prf文件,這個文件中又會逐一去調用各個模塊的pri文件;我們這里的是qt_lib_gui_private.pri。

 

以后如果需要寫prf 文件,pri文件,QT自帶的文件會是一個很好的參考。

 

 

 


免責聲明!

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



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