[英]Error when including Qt Headers
我對 Qt 很陌生,我在構建和鏈接 QMobility 庫時遇到了一些麻煩。 我沒有為此使用 qt 創建者。 這是一個示例 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 行,它只會得到一個未找到文件的錯誤。
我究竟做錯了什么? 謝謝。
您應該包括: #include <QApplication>
。
如果這不起作用,則可能是您的安裝錯誤。 嘗試重新安裝。
通常你創建一個 QT 項目文件(something.pro)並使用編譯
qmake && make
在您的終端中。 你試過嗎?
在一個獨立的 Visual Studio 項目中,我遇到了相同的響應。 我有
#include <QtCore>
並且包含路徑為c:\Qt\4.8.6\include\QtCore.
系統文件有錯誤:
QtCore\qobject.h: No such file or directory.
我將
到包含路徑中,問題就消失了。c:\Qt\4.8.6\include
你為什么要這樣傷害自己:-) 你將很難編寫一個 makefile 來編譯而不使用 qmake,假設你想利用 Qt 元 ZA8CFDE6331BD59EB2AC96F8911C4B6 工具)(你也應該使用 moc4B6 系統工具) 無論如何,為了更清楚,我像這樣重寫了您的示例:
#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
當然,您必須根據系統中標題的位置更改路徑。 請記住,每個 header 都包含其他內容,因此您必須“遞歸”提供所有必要的包含路徑。 當然,您之后必須鏈接庫。
使用 test.pro 文件會更簡單:
QT += core gui
CONFIG += mobility
MOBILITY += systeminfo
TEMPLATE = app
TARGET = test
SOURCES += test.cpp
並且已正確配置了您需要的所有必要包含路徑並正確鏈接到庫。 您也可以通過這種方式使用 C++ 的所有 Qt 擴展。
qmake test.pro && make
你就完成了。
根據您使用的 IDE,您應該能夠設置“Qt 項目”。 然后 IDE 會解決您和其他人在這里嘗試“手動”解決的麻煩。 CodeBlocks 支持 Qt 項目、MS Visual Studio,我認為還有很多其他的 IDE。 我建議你谷歌“ <yourIDE>
Qt-project getting started”。 或者考慮使用另一個 IDE。 但是你肯定必須熟悉 qmake 和 .PRO 文件,恐怕在某個時候。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.