![](/img/trans.png)
[英]QApplication: No such file or directory with Qt5 and qtsingleapplication on windows
[英]qt5 undefined reference to 'QApplication::QApplication(int&, char**, int)'
我正在嘗試運行一個簡單的 hello world 示例,並且已經需要一些時間來確定要使用的包含內容 現在我驗證了包含路徑,QApplication 實際上應該在那里,但它拋出了上述錯誤。 為了清楚起見,我的代碼:
#include <QtWidgets/QApplication>
#include <QtWidgets/QPushButton>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QPushButton *button = new QPushButton("Hello world!");
button->show();
return app.exec();
}
我試圖用第一QMAKE -project編譯,然后QMAKE最終使然后得到了以下錯誤:
qt_hello_world.o: In function 'main':
undefined reference to QApplication::QApplication(int&, char**, int)
qt_hello_world.cpp: undefined reference to QPushButton::QPushButton(QString const&, QWidget*)
qt_hello_world.cpp: undefined reference to QWidget::show()
qt_hello_world.cpp: undefined reference to QApplication::exec()
qt_hello_world.cpp: undefined reference to QApplication::~QApplication()
qt_hello_world.cpp: undefined reference to QApplication::~QApplication()
qmake 創建的 Makefile 包含正確的包含路徑到包含 QtWidgets/QApplication 的 qt5 目錄,QApplication 文件只包含包含實際類 QApplication 的 qapplication.h 頭文件。
教程https://wiki.qt.io/Qt_for_Beginners已完全更新,因此您必須對其進行修改。 更改為:
TEMPLATE = app
TARGET = callboot-ui.exe
QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
HEADERS +=
SOURCES += main.cpp
在@jww的情況下,它在 .pro 的以下行中出現錯誤:
greaterThan(QT_MAJOR_VERSION, 5): QT += core gui widgets
報錯是因為greaterThan(QT_MAJOR_VERSION, 5)
驗證Qt的主版本大於5來添加子模塊,但是Qt最新版本是5 .13.2不大於5,所以沒有鏈接導致顯示錯誤的模塊。
在教程greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
用於支持 .pro 以便它可以為 Qt4 和 Qt5 編譯,因為在后者中,widgets 移動到一個名為 widgets 的新子模塊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.