红联Linux门户
Linux帮助

Qt经典出错信息之QApplication: No such file or directory

发布时间:2010-05-07 19:50:47来源:红联作者:静静飞舞
Qt经典出错信息之QApplication: No such file or directory
这个出错信息一般是新手在编译Qt4第一个应用”Hello,World”的时候,翻开Qt编程的第一个例子。都说很简单。
#include
#include
int main(int argc, char *argv[])
{
QApplication app(argc,argv);
QWidget *ww=new QWidget();
ww->resize(300,200);
ww->show();
return app.exec();
}
一编译结果出现了上面这个错误,那叫一个郁闷。

其实花点心思照着提示,新手也是可以自己解决问题的。根据提示QApplication提示,应该是头文件没找到。那我们可以查看当前目录下Makefile里的环境变量INCPATH知道make应用是去哪里找头文件的。例如
./Makefile 文件部分内容
15 CXXFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
16 INCPATH = -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -I.
17 LINK = g++
第16行里面的,对应的去查找/usr/include/qt4/QtGui/QApplication这个文件是否存在(一般是不存在,存在就不会出错了)。不存在QApplication文件的原因大致有两个
1)没有装Qt4的开发包 .
解决办法把开发包装上,比如ubuntu下就是在shell里执行sudo install libqt4-dev;Fedora/SUSe下是在shell里执行sudo yum install qt4-devel
2) Qt4的开发包装了,但是调用了Qt3的qmake
因为有的系统里既装了Qt3,又装了Qt4。如果调用了qt3的qmake,那么上头的INCPATH里的头文件路径也指向了Qt3,那么是找不到 QApplication这个文件的。对应的解决方法就是调用Qt4安装路径下的qmake去生成Makefile,最好用全路径。我的机器Qt4中 qmake安装路径是
zhu@ubuntu:~/test/widget$ dpkg -L qt4-qmake |grep qmake |grep bin
/usr/bin/qmake-qt4
/usr/share/qt4/bin/qmake
所以只要执行
/usr/bin/qmake-qt4;make 或者 /usr/share/qt4/bin/qmake:make
都能以Qt4的文件去编译这个最简单的Qt4应用。

本站所有文章由本站和原作者保留一切权力,仅在保留本版权信息、原文链接、原文作者的情况下允许转载,转载请勿删改原文内容, 并不得用于商业用途。 谢谢合作。
原文链接:http://www.cuteqt.com/blog/?p=307
文章评论

共有 8 条评论

  1. zhou861026 于 2010-10-15 16:15:49发表:

    :0wl;l1

  2. shubangjun 于 2010-07-06 13:39:25发表:

    前段时间常报这个错误,当然不是你这个原因~呵呵

  3. 少欲知足 于 2010-05-13 04:49:55发表:

    一个中心,两个基本点,两手都要抓

  4. 故事剧终 于 2010-05-12 19:55:10发表:

    啥子帖子捏,就没看出来好!

  5. 乖乖的大笨牛 于 2010-05-12 19:43:53发表:

    LZ有权保持不沉默,但我们很快会让

  6. 季末思寂 于 2010-05-12 12:55:23发表:

    满头大汗地来支持不K!!!

  7. chainloader 于 2010-05-07 23:21:21发表:

    :0w5ty(1我也不感兴趣,等把linux习惯鸟,再切学C++,java, 如果可以,还希望看下易语言 ^ ^

  8. opviem 于 2010-05-07 20:58:36发表:

    看不懂滴说