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

时间:2015-11-03 09:17:06

标签: c++ qt ubuntu qt-creator beagleboneblack

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

我正在关注these steps,但在尝试编译默认QT项目时遇到错误QMainWindow Error

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

这是我的项目文件

Picture of my project

5 个答案:

答案 0 :(得分:2)

在Win 7 / MSVC2015x64bit上使用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自动读取 文件更改和更新。
(如果你已经deaktivated这尝试重新启动Qt)

除此之外 - 将greaterThan(QT_MAJOR_VERSION, X): QT += widgets中的“X”替换为预先版本的号码对我来说很好。 (X = your_major_version - 1

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

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

我希望我能帮助至少一个有同样问题的人。 ;)

问候Zitro

答案 1 :(得分:1)

Mybe在您从源头构建qt时遇到了一些错误,或者有些东西丢失了。尝试在qt include dir中搜索QMainWindow.h。好像它在/usr/local/qt4.8.2-armhf/include中。例如,您可以像find * /usr/local/qt4.8.2-armhf/include/ | grep QMainWindow一样进行搜索。

答案 2 :(得分:0)

首先,您需要确保交叉编译器有效, 编译hello world:std::cout << "hi\n"并使用命令行中的cross comipler gcc在设备上运行。

第二步是确保来自交叉编译的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 /本地/ oecore-i686的/ sysroots / armv7ahf-VFP氖埃Linux的gnueabi /

在这个目录里面&#34; bin&#34;和&#34; lib&#34;充满了arm可执行文件和arm库,这就是&#34; sysroot&#34;,它是克隆到交叉编译器的设备文件系统的一部分,它可以帮助您链接应用程序。还要确保在Qt创建者首选项中设置了qmake的正确路径以进行交叉编译,它应该是这样的:/usr/local/qt4.8.2-armhf/bin/qmake

答案 3 :(得分:0)

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

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

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

答案 4 :(得分:0)

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