2012-05-16 149 views
1

我正在寫這個簡單的Qt應用程序,但它顯示以下錯誤。 任何人都可以解釋我爲什麼我得到這些錯誤?下面的代碼片段:Qt程序無法編譯

#include <QTextStream> 

int main() 
{ 
    QTextStream out(stdout); 
    out << "console application\n"; 
} 

遵循的步驟編譯:

qmake -project 
qmake .pro file 
make 

按照上述步驟後,下面是我得到的輸出:

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 text.o text.cpp 
text.cpp:1:23: error: QTextStream: No such file or directory 
text.cpp: In function ‘int main()’: 
text.cpp:5: error: ‘QTextStream’ was not declared in this scope 
text.cpp:5: error: expected ‘;’ before ‘out’ 
text.cpp:6: error: ‘out’ was not declared in this scope 
make: *** [text.o] Error 1 

平臺:Linux

+0

如果你想要Qt4(根據你的標籤),你爲什麼要指定Qt3頭文件路徑? – Mat

回答

4

使用qmakemake而不是手動invok編譯器。

cd YourProject/ 
qmake -project 
qmake 
make 
./YourProjectTarget 

,並確保qmake版本你調用的是Qt4的版本,而不是QT3。你似乎已經安裝了兩個版本,並且你可能調用了Qt3。

試試這個:

qmake -version 

輸出應該是這樣的

QMake version 2.01a 
Using Qt version 4.8.1 in /usr/lib/x86_64-linux-gnu 

要確保你調用正確的qmake(Qt4的),通常你可以用qmake-qtX取代qmake命令,其中X是Qt版本。

cd YourProject/ 
qmake-qt4 -project 
qmake-qt4 
make 
./YourProjectTarget 
+0

是的iam使用相同的東西... – john

+1

@john:編輯我的答案,澄清'qmake'版本 – dschulz

+1

@john如果您安裝了qt3並且您沒有使用它(出於特定的原因),請刪除它。 – dschulz