linux下QT Creator常見錯誤及解決辦法


最近因為在做一個關於linux下計算機取證的小項目,需要寫一個圖形界面,所以想到了用QT來寫,選用了linux下的集成開發環境QT Creator5.5.1,但剛剛安裝好,竟然連一個"hello world"的樣例都跑不起來,現在通過查找資料將一些問題解決掉了,放在這里記錄下來,已被后用和分享:

 

1、QApplication: No such file or directory

(1)首先確定好QT Creator內部的環境變量設置是否正確:

“工具-選項-構建和運行”:找到“QT Versions”,點擊“自動檢測”下面的版本號,下邊會出現一個新的配置欄,點擊“桌面的Qt 版本5.5.1 ”后面的“詳情”,查看“QT_INSTALL_HEADERS”后面的頭文件變量是否正確,也可以到該變量中查找有無QApplication這一頭文件,如果沒有,建議重新安裝QT,因為你從網上下載的單個文件不一定能夠現有的編譯器識別,最好安裝配套的組件。

(2)如果以上信息都確認無誤,則檢查工程文件中*.pro中是否有“QT += widgets”,若沒有,則需要在工程文件*.pro下增加一條:“QT += widgets”。通常問題就可以解決了;

 

2、:-1: error: cannot find -lGL

這個就很郁悶了,剛剛接觸QT,連個hello world都沒搞定呢,lGL是個什么鬼?網上一查才知道是個什么運行庫,這里感謝CSDN上網友的解決辦法:

http://bbs.csdn.net/topics/390845437?list=lz

sudo apt-get install libqt4-dev或者sudo apt-get install libgl1-mesa-dev或者libgl1-mesa-dev或者libglu1-mesa-dev

我把這幾個包沒有的都裝了一遍,最后一個裝的時候還把源更新了一遍才裝上,這次問題就完美解決了。

 

3、Circular all <- first dependency dropped

這個問題就比較奇葩了,我很納悶為什么會有這樣的問題:

這個問題其實很容易解決,但解決方式有點讓人吐血:出這個問題的肯定是你把工程名命名為了"first",是不是?

查過了才知道,Qt使用了first這個單詞作為生成的Makefile文件的內置項,導致make在處理Makefile時產生依賴錯誤,只要把工程重命名即可解決

(神坑的問題……)

感謝博客園網友“24k純開源”提供的解決辦法:http://www.cnblogs.com/csuftzzk/archive/2013/07/18/3198154.html

 

4、 [SOLVED] Gtk-Message: Failed to load module "canberra-gtk-module"

這個是gtk庫沒有安裝完整,重新安裝即可

sudo apt-get install libcanberra-gtk3-module

sudo apt-get install libcanberra-gtk*

這樣就可以解決了

 

5、對於包含了Q_OBJECT宏的類對象,需要現在本地執行"qmake -project"->"qmake"->"make",才能獲得可執行文件,QT Creator中不能直接編譯。

 

6、error: 'tr' was not declared in this scope

 

tr這個函數是QObject對象中的靜態成員函數,因此使用的時候,如果不是用類來寫的話,就會報這個錯誤,只需要在tr函數前加上“QObject::”,如:“QObject::tr("a button")”這樣既可;

*一般用類來寫程序時都會在定義類成員之前先包含QObject對象,所以用類就不會存在這個問題了

(今后問題肯定還會有,如果再出現任何問題,我都會及時再次更新……)


免責聲明!

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



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