我对Qt很新,我在构建和连接QMobility lib时遇到了一些麻烦。我没有使用qt creator。这是test.cpp示例:
#include "Qt/qapplication.h"
#include "Qt/qobject.h"
//#include <QtSystemInfo> //
#include "qsysteminfo.h"
int main()
{}
构建cmd:
gcc -c test.cpp -L/usr/include/qt4/ -lQtCore -I/usr/include/qt4 -I/usr/include/QtSystemInfo
错误: 在test.cpp包含的文件中:4: /usr/include/QtSystemInfo/qsysteminfo.h:51:致命错误:QObject:没有这样的文件或目录
或者如果我包含现在已注释的第3行,则只会收到找不到文件的错误。
我做错了什么?感谢。
答案 0 :(得分:2)
你应该包括:#include <QApplication>
。
如果这不起作用,您的安装可能不正确。尝试重新安装。
答案 1 :(得分:2)
通常您创建一个QT项目文件(something.pro)并使用
进行编译qmake && make
在您的终端中。你试过了吗?
答案 2 :(得分:1)
为什么你想以这样的方式伤害自己:-)你将很难编写一个makefile来编译而不使用qmake,假设你想利用Qt元对象系统(你应该使用moc工具作为好)。无论如何,为了更清楚,我重写了你的样本:
#include <QApplication>
#include <QObject>
#include <QSystemInfo>
int main()
{
return 0;
}
但你可以在写的时候保留它。为了编译它,我不得不使用这个命令行:
g++ test.cpp -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtCore -I/usr/include/qt4 -I/usr/local/Trolltech/QtMobility-x86-1.1.3/include/QtSystemInfo -I/usr/local/Trolltech/QtMobility-x86-1.1.3/include/QtMobility
当然,您必须根据系统中标题的位置更改路径。请记住,每个标题包含其他标题,因此您必须“递归地”提供所有必需的包含路径。当然,您之后必须链接这些库。
使用test.pro文件会更简单:
QT += core gui
CONFIG += mobility
MOBILITY += systeminfo
TEMPLATE = app
TARGET = test
SOURCES += test.cpp
并且正确配置了您需要的所有必要包含路径并正确链接到库。您也可以通过这种方式使用C ++的所有Qt扩展。
qmake test.pro && make
你已经完成了。
答案 3 :(得分:1)
在一个独立的Visual Studio项目中,我遇到了相同的响应。我有
#include <QtCore>
和包含路径为
#include <QtCore>
系统文件出错:
c:\Qt\4.8.6\include\QtCore.
我加了
c:\Qt\4.8.6\include\QtCore.
到了包含路径,问题就消失了。
答案 4 :(得分:0)
根据您使用的IDE,您应该能够设置“Qt项目”。然后IDE处理麻烦,你和其他人在这里试图“手工”解决。 CodeBlocks支持Qt项目,MS Visual Studio,我认为很多其他IDE。我建议你google“<yourIDE>
Qt-project入门”。或者考虑使用其他IDE。但你绝对必须熟悉qmake和.PRO文件,恐怕在某一点上。