gpt4 book ai didi

c++ - qt5 undefined reference 'QApplication::QApplication(int&, char**, int)'

转载 作者:行者123 更新时间:2023-12-02 10:05:58 25 4
gpt4 key购买 nike

我正在尝试运行一个简单的 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 进行编译,最后使用 ma​​ke 进行编译,然后出现以下错误:

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 包含 qt5 目录的正确包含路径,该目录包含 QtWidgets/QApplication,QApplication 文件仅包含包含实际类 QApplication 的 qapplication.h header 。

最佳答案

教程 https://wiki.qt.io/Qt_for_Beginners已完全更新,因此您必须对其进行修改。更改为:

TEMPLATE = app
TARGET = callboot-ui.exe
<b>QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets</b>
HEADERS +=
SOURCES += main.cpp
<小时/>

TL;博士;

@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 进行编译,因为在后者中,小部件移动到了新的版本称为小部件的子模块。

关于c++ - qt5 undefined reference 'QApplication::QApplication(int&, char**, int)',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48746408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com