Qmake實(shí)際問(wèn)題解決
qmake是用來(lái)為不同的平臺(tái)的開(kāi)發(fā)項(xiàng)目創(chuàng)建makefile的Trolltech開(kāi)發(fā)一個(gè)易于使用的工具。qmake簡(jiǎn)化了makefile的生成,所以為了創(chuàng)建一個(gè)makefile只需要一個(gè)只有幾行信息的文件。qmake可以供任何一個(gè)軟件項(xiàng)目使用,而不用管它是不是用Qt寫(xiě)的,盡管它包含了為支持Qt開(kāi)發(fā)所擁有的額外的特征。
qmake基于一個(gè)項(xiàng)目文件這樣的信息來(lái)生成makefile。項(xiàng)目文件可以由開(kāi)發(fā)者生成。項(xiàng)目文件通常很簡(jiǎn)單,但是如果需要它是非常完善的。不用修改項(xiàng)目文件,qmake也可以為為Microsoft Visual Studio生成項(xiàng)目。
現(xiàn)在Qt版本已經(jīng)到4.5.0了,最近一直在正常使用,由于今天裝了一下KDE的開(kāi)發(fā)環(huán)境,如KDevelop,kdelibs...
發(fā)現(xiàn)qmake出現(xiàn)問(wèn)題:
- $qmake -project
 - $qmake
 - $make
 
產(chǎn)生錯(cuò)誤如下:
- 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: 錯(cuò)誤: QApplication:沒(méi)有該文件或目錄
 - main.cpp: In function ‘int main(int, char**)’:
 - main.cpp:5: 錯(cuò)誤: ‘QApplication’在此作用域中尚未聲明
 - main.cpp:5: 錯(cuò)誤: expected `;' before ‘app’
 - main.cpp:18: 錯(cuò)誤: ‘app’在此作用域中尚未聲明
 - main.cpp: At global scope:
 - main.cpp:3: 警告: 未使用的參數(shù)‘argc’
 - main.cpp:3: 警告: 未使用的參數(shù)‘argv’
 - make: *** [main.o] 錯(cuò)誤 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: 錯(cuò)誤: QApplication:沒(méi)有該文件或目錄
 - main.cpp: In function ‘int main(int, char**)’:
 - main.cpp:5: 錯(cuò)誤: ‘QApplication’在此作用域中尚未聲明
 - main.cpp:5: 錯(cuò)誤: expected `;' before ‘app’
 - main.cpp:18: 錯(cuò)誤: ‘app’在此作用域中尚未聲明
 - main.cpp: At global scope:
 - main.cpp:3: 警告: 未使用的參數(shù)‘argc’
 - main.cpp:3: 警告: 未使用的參數(shù)‘argv’
 - make: *** [main.o] 錯(cuò)誤 1
 
仔細(xì)一看,QApplication怎么會(huì)沒(méi)有該文件?為什么make輸出的編譯命令會(huì)跟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的信息,它是一個(gè)鏈接指向的是/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
 
終于找到的根源,原來(lái)qmake被設(shè)置成了qmake-qt3
強(qiáng)行修改
- 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實(shí)際問(wèn)題解決的內(nèi)容介紹完了,qmake環(huán)境變量,在qt/mkspecs中的每一個(gè)目錄里面,都有一個(gè)包含了平臺(tái)和編譯器特定信息的qmake.conf文件。這些設(shè)置適用于你要使用qmake的任何項(xiàng)目,請(qǐng)不要修改它,除非你是一個(gè)專家。例如,假如你所有的應(yīng)用程序都必須和一個(gè)特定的庫(kù)連接,你可以把這個(gè)信息添加到相應(yīng)的qmake.conf文件中。,最后希望本文對(duì)你有所幫助!















 
 
 



 
 
 
 