Qt Linux 下 <QWidget> <QSystemTrayIcon> <QLabel> 等头文件包含时 No such file or directory

如题啊,第一次接触Qt,比较茫然,找到很多例子,有些在编译时头文件显示 No such file or directory。
操作系统是Ubuntu,Qt是5.0.1.
求救中……………………

5.0.1我倒没装,我用的是4.8
不过,很明显这个路径配置出问题了,include path配置不对,或者你的文件权限不对,以至于你甚至没有权限去读取这些头文件,
第一个情况:

你是用Qt Creater工具写代码的吗?
可以试一下这样:
在打开的项目中,编辑 标签下,左侧栏右键对应的工程,添加新文件,选择C++,C++头文件,
将Qt的include目录及其所有子目录添加一遍

确实比较麻烦,不过你还可以修改项目的pro文件,前提是你要知道这个文件是干嘛用的,每个项表示什么意思,然后再linux下,用ls -l对include 所有子目录列出重定向到一个临时文件,然后对这个文件编辑一下,在复制过去,各种办法吧,看你怎么用了

第二个情况:
权限不够,这就得用include目录的所有者,对include目录及其所有子目录的所有文件chmod a+r -R include

这些东西一般安装之后基本的变量都应该配置好的,至于为什么,估计安装不对吧

除了includepath,其他一些变量也要相应改,确实难搞

搞不定的话,建议你重新装个4.x的吧追问

装回4.8了,但是依然是原来的问题……这不科学啊

追答

确实很不科学,我想问一下,
你怎么装的,参考哪里的安装方法?
还有,编译代码的时候你是用什么编译器怎么编译的?

追问

下载qt-everywhere-opensource-src-4.8.4.tar.gz,解压,./configure 之后make(3小时),再sudo make install 就完成了安装。
加载是1、创建空项目。2、拷贝别的工程的X.c X.h X.qrc 文件到空项目文件夹下,后添加现有项,将这些文件一一添加,之后编译出的这个错误。

追答

你去看看Qt的安装目录下,include目录的Qt目录有没有QWidget.h文件,QtGUI目录下有没有
QWidget、QWidget.h这两个文件……。如果都有的话,cd 转到这些包含目录下ls -l 查看这些文件是否每个人都有读取权限。如果都有文件,有读取权限的话,那就在工程中编辑那个pro后缀的文件
在最前面加上这一句:
message(---------->$$[QT_INSTALL_HEADERS])
看看输出小窗口里边的编译输出标签
---------->开头的后面跟着的是什么

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-05-23
Qt 5 和 Qt 4 的pro 文件写法不同.
如果直接用Qt 5 打开用Qt4 写的工程就会有这样的错误.
QT += core gui
greaterThan(QT_MAJOR_VERSION,4): QT += widgets
加在 .pro 文件里试试..
第2个回答  2013-05-17
试试#include <QWidget.h>看看