我是新手,请耐心等待。我使用的是Ubuntu,我已经从.run文件安装了Qt 5.1.0。QtCreator 2.8也已安装。我在.bashrc文件中添加了以下行:
export QTDIR=/opt/Qt5.1.0/5.1.0/gcc
export QMAKESPEC=$QTDIR/mkspecs/linux-g++
export QT_PLUGIN_PATH=$QTDIR/plugins
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
我尝试了一个简单的应用程序示例:
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication app(argc,argv);
QLabel *label = new QLabel("Hello Qt!");
label->show();
return app.exec();
}
我做了"qmake-project"one_answers"qmake-hello.pro",然后我输入了"make"。这给了我一个错误:"hello.cpp:1:24:致命错误:QApplication:没有这样的文件或目录编译已终止。"
问题似乎出在qmake上。当我用QtCreator制作项目时,它的Makefile有不同的INCPATH变量,这个阶段没有问题(还有其他问题,但这是另一个问题)。这是通过QtCreator:创建的Makefile中的INCPATH变量
“INCPATH = -I/opt/Qt5.1.0/5.1.0/gcc/mkspecs/linux-g++ -I../helloQtCreator -I/opt/Qt5.1.0/5.1.0/gcc/include -I/opt/Qt5.1.0/5.1.0/gcc/include/QtWidgets -I/opt/Qt5.1.0/5.1.0/gcc/include/QtGui -I/opt/Qt5.1.0/5.1.0/gcc/include/QtCore -I. -I. -I.”
这个是qmake通过终端创建的:
“INCPATH = -I/opt/Qt5.1.0/5.1.0/gcc/mkspecs/linux-g++ -I. -I. -I/opt/Qt5.1.0/5.1.0/gcc/include -I/opt/Qt5.1.0/5.1.0/gcc/include/QtGui -I/opt/Qt5.1.0/5.1.0/gcc/include/QtCore -I.”
项目名称不同,但为什么qmake不包括"-I/opt/Qt5.1.0/5.1.0/gcc/include/QtWidgets"什么时候从终端手动启动?将这一行添加到.pro文件暂时解决了问题:
QT += widgets
但我不想每次都手动执行此操作。我该怎么修?
谢谢。
这是Qt中的错误,当使用命令qmake-project从终端创建项目文件时,生成的项目文件不包含行:greaterThan(Qt_MAJOR_VERSION,4):Qt+=widgets。这可能是qmake在MAKEFILE中不包含"-I/opt/Qt5.1.0/5.1.0/gcc/include/QtWidgets"的原因。更多信息QT BUG。