【问题标题】:Qt LNK2019 Error with basic Qt5 applicationQt LNK2019 基本 Qt5 应用程序出错
【发布时间】:2013-02-02 22:04:53
【问题描述】:

我正在尝试按照在线教程并使用 QtCreator 2.6.1 学习 Qt5

但是,我尝试按照本教程编写一个基本应用程序,但每当我尝试构建项目时,我都会收到链接错误:

#include <QtWidgets/QApplication>
#include <QtWidgets/QLabel>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QLabel *label = new QLabel("Hello World");
    label->show();

    return app.exec();
}

单击“构建”后,我会收到大约 50 个错误,结果类似于以下内容:

main.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall QApplication::~QApplication(void)" (__imp_??1QApplication@@UAE@XZ) referenced in function _main
main.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: static int __cdecl QApplication::exec(void)" (__imp_?exec@QApplication@@SAHXZ) referenced in function _main
main.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall QWidget::show(void)" (__imp_?show@QWidget@@QAEXXZ) referenced in function _main

有没有办法通过链接库等来解决这个问题(假设它们没有正确链接)?如果没有,我还能做些什么来尝试解决这个问题?

【问题讨论】:

  • 我想我终于弄清楚我做错了什么。我必须将 QT += 小部件添加到我的项目 (.pro) 文件中。然后我阅读了使用 qmake,运行它,然后它似乎编译和构建就好了。
  • 也像这样使用包含:#include 等等,而不是:#include 它更容易(你不需要预先包含的处理器指令)以这种方式使用 Qt4 作为目标。
  • 好吧,当我尝试 #include 时,它在 IDE 中给我一个错误,告诉我它找不到文件 QApplication.虽然它能够找到 QWidget/WApplication。不过,在更改 .pro 文件后,我能够做到这一点。

标签: c++ qt compiler-errors qt5 lnk2019


【解决方案1】:

这是一个链接器错误,无法将目标文件链接在一起, 首先删除所有build directory,然后检查此行是否已添加到您的.pro 文件中:

QT += core gui widgets

这应该可行,如果再次失败,您必须提供有关您的编译器及其search path 的更多信息,并在此处发布您的.pro 文件内容。

【讨论】:

  • 已经解决了,在 .pro 文件中添加 QT+= widgets
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-08
  • 2018-01-29
  • 1970-01-01
相关资源
最近更新 更多