QMainWindow: 没有这样的文件或目录

QMainWindow: No Such File Or Directory

我在 Ubuntu 14.04 LTS 主机上使用 QT Creator 3.5.1 和 QT 4.8.2,我为 ARM 交叉编译配置了我的 BeagleBone 套件,如下所示:

我正在关注 these steps, but I'm getting an error when trying to compile the default QT project

我错过了什么吗?如果找不到,则说明它不在编译器查找的位置。 如何解决这个问题?

这是我的项目文件

首先你需要确保交叉编译器可以工作, 从命令行使用交叉编译器 gcc 在设备上编译 hello world:std::cout << "hi\n" 和 运行。

第二步是确保来自交叉编译的 Qt 的 qmake 按预期工作,运行 /usr/local/qt4.8.2-armhf/bin/qmake path/to/your/pro/file && make 如果一切正常则下一步

第三,最后配置你的Qt Creator

看这里:http://developer.toradex.com/how-to/how-to-set-up-qt-creator-to-cross-compile-for-embedded-linux

您需要将 sysroot 设置为正确的值,例如在我的例子中是:

/usr/local/oecore-i686/sysroots/armv7ahf-vfp-neon-angstrom-linux-gnueabi/

在该目录中 "bin" 和 "lib" 充满了 arm 可执行文件和 arm 库,这就是 "sysroot",它是克隆到交叉编译器的设备文件系统的一部分,帮助您 link 您的应用程序。还要确保在 Qt Creator 首选项中为交叉编译设置正确的 qmake 路径,它应该像这样:/usr/local/qt4.8.2-armhf/bin/qmake

可能是您的 QT Creator 版本过旧了。如果安装与项目不兼容的 QT Creator 版本,项目可能会损坏。您可以在软件中心下载最新版本的QT Creator

您还需要确保您的 QT 是最新的。使用软件更新程序进行检查。

我找到了这个;你可能想看看它:derekmolloy.ie/beaglebone/qt-with-embedded-linux-on-the-beaglebone/#Source_Code

Mybe 从源代码构建 qt 时出现错误,或者缺少某些内容。尝试在 qt include 目录中搜索 QMainWindow.h。好像在 /usr/local/qt4.8.2-armhf/include。例如,您可以这样搜索 find * /usr/local/qt4.8.2-armhf/include/ | grep QMainWindow.

在 Win 7 / MSVC2015x64 位上使用 Qt 5.8.0;

我遇到了同样的问题,我找到了解决它的方法,即使它不是最聪明的方法:

1) 打开您的 projectname.pro 文件

2) 之间 QT += core gui greaterThan(QT_MAJOR_VERSION, X): QT += widgets 粘贴QT += widgets 所以这部分看起来有点像这样:

... QT += core gui QT += widgets greaterThan(QT_MAJOR...

保存并关闭.pro文件,等待Qt自动读取 文件更改和自我更新。
(如果你已经取消激活这个尝试重新启动 Qt)

还有这个 - 用旧版本的号码替换 greaterThan(QT_MAJOR_VERSION, X): QT += widgets 处的 "X" 对我来说效果很好。 (X = your_major_version - 1)

(如果使用 Qt 5.x 放置 4 而不是 5,使用 Qt 3.x 将 3 替换为 2 等等...)

我不知道这是否也适用于其他平台...

我希望我能帮助至少 1 位遇到同样问题的人。 ;)

你好 Zitro

在 windows 上检查您的项目文件夹没有奇怪的字符,例如:( , ) 或 # ...