【问题标题】:Cannot find Qt files when compiling编译时找不到Qt文件
【发布时间】:2013-07-26 16:45:14
【问题描述】:

我有一个 QT 项目,最初是为 UI 和为网络创建服务器而设计的。但是,现在我只需要它的网络部分与另一个 UI 实现集成。

我剥离了文件和主要功能并将项目编译为库。一切顺利。

但是,当我尝试将这个项目中的头文件包含到另一个项目中时,我会收到类似这样的编译时错误(对于从 QT 项目中调用头文件的项目):

fatal error C1083: Cannot open include file: 'QObject': No such file or directory

这两个项目都是同一个 VS2008 解决方案的一部分。我想我遗漏了一些东西,但我不能动手……请帮忙,谢谢!

【问题讨论】:

  • 编译的项目在其文件中使用 Qt 头文件的相对路径,另一个项目与编译的项目位于不同的目录中?
  • 路径不是相对的。它包括使用#include <QObject> 等,并且这个项目编译成一个.lib 文件。我想知道我是否还必须为其他项目设置所有 QT 路径(包括包含和 dll,或者只是 dll,或者...)?
  • 好吧,那么编译的项目似乎将 Qt 头文件的路径添加到其路径变量中。第二个项目没有。
  • 我试图提供路径,虽然上面的错误消失了,但我遇到了这样的新错误:c:\qt\qt4.7.3\include\qtcore\../../src/corelib/global/qnamespace.h(1256) : error C2332: 'enum' : missing tag name... 然而,我无法理解的是,因为第一个项目已经编译到 .lib 为什么该项目中的文件会导致错误?
  • 似乎我在这里缺少一些 Visual Studio 的基本知识......

标签: c++ visual-studio-2008 qt4.7


【解决方案1】:

好的,一切都解决了。感谢@Petr-Budnik 的建议。这就是我所做的......

  1. 设置环境值(在配置属性->调试下)以更新路径(这是在 QT 项目中完成的)。此值设置路径以包含 QTBin 文件夹(我怀疑它有任何用处)
  2. 将所有预处理器定义从 QT 项目复制到主项目
  3. 更新包含路径
  4. 遇到链接错误时,将 QT .lib 文件添加到其他依赖项中。

还有一个重要的(虽然很奇怪)在编译期间的修复...由于文件 qnamespace.h 中的一些奇怪的 QT 编译时错误,我不得不将调用移动到我的“.h”的顶部。和 qmetatype.h(感谢tip from comment 2)

【讨论】:

    猜你喜欢
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 2014-07-21
    • 1970-01-01
    • 1970-01-01
    • 2013-04-22
    • 2013-08-08
    • 1970-01-01
    相关资源
    最近更新 更多