2012-05-16 252 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