错误的QApplication:没有这样的文件或目录
我已经安装了C++ SDK有Qt的,但是当我尝试编译链接的QApplication代码它给我的错误:错误的QApplication:没有这样的文件或目录
Error QApplication: no such file or directory
如何链接这些库?我搜索了目录,并且有一个名为QApplication.h的文件;所以我试图用-I(链接目录)链接它,但它仍然给我那个错误。
要开始工作,错误QApplication: no such file or directory
意味着您的编译器无法找到此标头。这与您在问题中提到的链接过程无关。
的-I
标志(大写我)用于指定的包括(头)目录(这是你需要做什么),而-L
标志用于指定库目录。-l
标志(小写字母L)用于将您的应用程序与指定的库链接。
但是你可以使用Qt来你的优势:Qt拥有一个名为QMAKE构建系统,这使得事情变得更加容易。例如,当我想编译main.cpp我创建了一个main.pro文件。为了教育目的,我们假设这个源代码是一个简单的项目,它只使用QApplication
和QDeclarativeView
。适当的的.pro文件将是:
TEMPLATE += app
QT += gui declarative
SOURCES += main.cpp
然后,执行qmake
该目录内创建将用于编译应用程序的Makefile文件,最后执行make
来完成这项工作。
在我的系统中,这make
输出:
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_DECLARATIVE_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/opt/qt_47x/mkspecs/linux-g++ -I. -I/opt/qt_47x/include/QtCore -I/opt/qt_47x/include/QtGui -I/opt/qt_47x/include/QtDeclarative -I/opt/qt_47x/include -I/usr/X11R6/include -I. -o main.o main.cpp
g++ -Wl,-O1 -Wl,-rpath,/opt/qt_47x/lib -o main main.o -L/opt/qt_47x/lib -L/usr/X11R6/lib -lQtDeclarative -L/opt/qt_47x/lib -lQtScript -lQtSvg -L/usr/X11R6/lib -lQtSql -lQtXmlPatterns -lQtNetwork -lQtGui -lQtCore -lpthread
注:我在另一个目录中安装的Qt - >/opt/qt_47x
在Qt 5.x之后,您需要将'QT + = widgets'添加到**。pro **文件中。 – karlphillip
看起来你没有安装开发库。使用安装:
sudo apt-get install libqt4-dev
正如你INT您安装了该评论说,只是重新安装。现在。更新定位的数据库,发出这个命令$sudo updatedb
然后$locate QApplication
检查你现在已经安装了头文件。
现在,转到这个地方你的代码&键入以下命令
qmake -project
qmake
make
后,可以看到创建的二进制文件的文件夹。
或者,如果您需要GUI,则可以使用Qt Creator。
有关更多信息,请参阅官方文档。 http://developer.qt.nokia.com/doc/qt-4.8/gettingstartedqt.html
要学习如何使用Qt Creator的,使用http://doc.qt.nokia.com/qtcreator-2.2/creator-qml-application.html
如果我-project壳冻结几秒钟型QMAKE,我必须与ctrl + c分开。 –
在cmdline中键入'$ qmake -project -d -Wall'并告诉它挂起的位置。另外,你是否尝试QtCreator? –
ramy @ ubuntu:〜/ Documents/C++/Prova $ $ qmake -project -d -Wall 找不到命令'-project',你的意思是: 命令'project'从package'turnin-ng'(universe) - 项目:找不到命令 –
我建议您更新SDK,并开始新的项目,并重新编译你拥有的一切。看起来你有一些内部程序错误。或者你缺少包装。
而且这是阿卜迪耶克说的。
我不明白为什么你有问题,如果你已经安装了软件包,你使用的是什么SDK和NDK?以及你有什么开发工具? QT创造者? QT必需品? – Denonth
请确保您使用的qmake版本与您要使用的QT版本相对应。
可以肯定的,你可以运行:
$qmake -v
你的问题似乎是QT 3和4之间的版本冲突的征兆,因为在这里可以看到:
http://lists.trolltech.com/qt4-preview-feedback/2005-11/thread00013-0.html
要解决这个问题,您可以删除旧的QT安装,或者在您的Makefile中特别指向qmake-qt4。
+1显示如何测试版本,以及提供更多信息的链接。 –
请确保您有QMAKE在路径(这qmake的),而且它作品(qmake -v) (如果你必须用ctr-c杀死它,那么你的环境出问题了)。
然后按照这个:http://developer.qt.nokia.com/doc/qt-4.8/gettingstartedqt.html
在QT5你应该使用QtWidgets
代替QtGui
#include <QtGui/QComboBox> // incorrect in QT5
#include <QtWidgets/QComboBox> // correct in QT5
或
#include <QtGui/QStringListModel> // incorrect in QT5
#include <QtCore/QStringListModel> // correct in QT5
对于QT 5
第一步: .pro
(在亲文件,添加这些2行)
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
第二步: 在main.cpp
替换代码:
#include <QtGui/QApplication>
有:
#include <QApplication>
,你必须在.pro文件中添加QT + =部件在第一次执行之前,如果你加入这一行的不是要去工作之前执行,所以哟需要启动文件的创建从一开始就。
您可以更改构建versiyon.例如,我试过QT 5.6.1,但它没有工作。但我试过QT 5.7.0。所以它的工作,祝你好运! :)
'它给了我那个错误'。什么错误?张贴正确的错误输出。在您提供完整信息之前,没有人可以为您提供帮助。 –
这个question.The源的标题是一个简单的文件,我想我没必要张贴此只是简单:http://pastebin.com/972XtFUz –
是什么的输出'$定位QApplication'? –