【问题标题】:Not found include <QtCore/qglobal.h>未找到包括 <QtCore/qglobal.h>
【发布时间】:2015-09-20 14:36:27
【问题描述】:

所以我正在尝试使用 QT creator 创建一个 dll。我去了new project -&gt; libary -&gt; C++ libary -&gt; choose。它会自动生成一个带有global 前缀的头文件和一个找不到的包含头文件:

#include <QtCore/qglobal.h>

给出错误:

错误:QtGlobal:没有这样的文件或目录

我发现包含此标头以使用 Q_DECL_EXPORT 宏,因此我搜索了它的定义位置:here。所以我做了#include &lt;QtGlobal&gt; 标题但得到了同样的错误。

错误的根源是什么,我该如何解决?

【问题讨论】:

  • QTGlobalqglobal.h 是 QtCore 模块中的包含文件,您的 .pro 文件是否有 QT += core
  • 自动生成的 .pro 文件在这一行中删除了这个 QT -= core gui 刚刚从其中删除了 core 并且它起作用了
  • 那是因为你选择了“C++ 库”,它是一个非Qt C++ 库的模板。奇怪的是,自动生成的标头包含 Qt 包含然后...
  • 也许这是一个错误?它也不应该有那条线
  • 不要包含&lt;QtModule/qfoo.h&gt;这样的内容。在您的情况下,请始终简单地包含 &lt;QFoo&gt;&lt;QtGlobal&gt;

标签: c++ qt dll qt-creator filenotfoundexception


【解决方案1】:

您可能需要将以下内容添加到您的 *.pro 文件中:

QT += core

【讨论】:

    【解决方案2】:

    找到了解决办法!

    QT 创建者在.pro 文件中使用以下行创建了项目:

     QT -= core gui 
    

    注意-= 运算符,这阻止了core 库的链接,然后#include &lt;QtCore/qglobal.h&gt; 的未找到只是从该行中删除了core,它编译得很好。

    【讨论】:

    • 这不是错误。您创建了一个非 Qt 项目。它不应该链接到任何 Qt 库,或使用任何 Qt 头文件!你得到了你想要的。
    • 我将 QtCore 与 QT += core sql network 行链接,但我仍然收到此错误。在 QtCreator 中,我可以点击指向包含文件的链接,因此它似乎找到了它,但我仍然收到此错误。
    【解决方案3】:

    QT 创建者在 .pro 文件中使用以下行创建了项目: 我必须使用 # 下面的整行来删除/评论

    # QT -= core gui 
    

    【讨论】:

      【解决方案4】:

      在系统环境变量中添加一个QTDIR,重启VS并在VS项目配置中引用$(QTDIR)

      enter image description here enter image description here

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-01
      • 1970-01-01
      • 2020-11-22
      • 2017-06-02
      相关资源
      最近更新 更多