Qmake實際問題解決
qmake是用來為不同的平臺的開發(fā)項目創(chuàng)建makefile的Trolltech開發(fā)一個易于使用的工具。qmake簡化了makefile的生成,所以為了創(chuàng)建一個makefile只需要一個只有幾行信息的文件。qmake可以供任何一個軟件項目使用,而不用管它是不是用Qt寫的,盡管它包含了為支持Qt開發(fā)所擁有的額外的特征。
qmake基于一個項目文件這樣的信息來生成makefile。項目文件可以由開發(fā)者生成。項目文件通常很簡單,但是如果需要它是非常完善的。不用修改項目文件,qmake也可以為為Microsoft Visual Studio生成項目。
現(xiàn)在Qt版本已經(jīng)到4.5.0了,最近一直在正常使用,由于今天裝了一下KDE的開發(fā)環(huán)境,如KDevelop,kdelibs...
發(fā)現(xiàn)qmake出現(xiàn)問題:
- $qmake -project
- $qmake
- $make
產(chǎn)生錯誤如下:
- view plaincopy to clipboardprint?
- g++ -c -pipe -g -Wall -W -O2 -D_REENTRANT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT
- -I/usr/share/qt3/mkspecs/default -I. -I. -I/usr/include/qt3 -o main.o main.cppmain.cpp:1:24: 錯誤: QApplication:沒有該文件或目錄
- main.cpp: In function ‘int main(int, char**)’:
- main.cpp:5: 錯誤: ‘QApplication’在此作用域中尚未聲明
- main.cpp:5: 錯誤: expected `;' before ‘app’
- main.cpp:18: 錯誤: ‘app’在此作用域中尚未聲明
- main.cpp: At global scope:
- main.cpp:3: 警告: 未使用的參數(shù)‘argc’
- main.cpp:3: 警告: 未使用的參數(shù)‘argv’
- make: *** [main.o] 錯誤 1
- g++ -c -pipe -g -Wall -W -O2 -D_REENTRANT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT
- -I/usr/share/qt3/mkspecs/default -I. -I. -I/usr/include/qt3 -o main.o main.cppmain.cpp:1:24: 錯誤: QApplication:沒有該文件或目錄
- main.cpp: In function ‘int main(int, char**)’:
- main.cpp:5: 錯誤: ‘QApplication’在此作用域中尚未聲明
- main.cpp:5: 錯誤: expected `;' before ‘app’
- main.cpp:18: 錯誤: ‘app’在此作用域中尚未聲明
- main.cpp: At global scope:
- main.cpp:3: 警告: 未使用的參數(shù)‘argc’
- main.cpp:3: 警告: 未使用的參數(shù)‘argv’
- make: *** [main.o] 錯誤 1
仔細(xì)一看,QApplication怎么會沒有該文件?為什么make輸出的編譯命令會跟qt3相關(guān),本人一直在使用qt4
- view plaincopy to clipboardprint?
- $qmake -v
- $Qmake version: 1.07a (Qt 3.3.8b)
- $Qmake is free software from Trolltech ASA.
- $qmake -v
- $Qmake version: 1.07a (Qt 3.3.8b)
- $Qmake is free software from Trolltech ASA.
怎么qmake的版本變成了qt3了
- $ls -l qmake
- $lrwxrwxrwx 1 root root 23 2009-04-07 14:45 /usr/bin/qmake -> /etc/alternatives/qmake
查看qmake的信息,它是一個鏈接指向的是/etc/alternatives/qmake
- $ls -l /etc/alternatives/qmake
- $lrwxrwxrwx 1 root root 18 2009-04-24 16:42 /etc/alternatives/qmake -> /usr/bin/qmake-qt3
終于找到的根源,原來qmake被設(shè)置成了qmake-qt3
強行修改
- view plaincopy to clipboardprint?
- $rm /etc/alternatives/qmake
- $ln -s /usr/bin/qmake-qt4 /etc/alternatives/qmake
- $qmake -v
- $QMake version 2.01a
- Using Qt version 4.5.0 in /usr/lib
- $rm /etc/alternatives/qmake
- $ln -s /usr/bin/qmake-qt4 /etc/alternatives/qmake
- $qmake -v
- $QMake version 2.01a
- Using Qt version 4.5.0 in /usr/lib
OK!
小結(jié):Qmake實際問題解決的內(nèi)容介紹完了,qmake環(huán)境變量,在qt/mkspecs中的每一個目錄里面,都有一個包含了平臺和編譯器特定信息的qmake.conf文件。這些設(shè)置適用于你要使用qmake的任何項目,請不要修改它,除非你是一個專家。例如,假如你所有的應(yīng)用程序都必須和一個特定的庫連接,你可以把這個信息添加到相應(yīng)的qmake.conf文件中。,最后希望本文對你有所幫助!