主窗口:没有这个文件或目录。

9
我正在使用QT Creator 3.5.1和QT 4.8.2在Ubuntu 14.04 LTS主机上,我已经按照以下方式配置了BeagleBone Kit用于ARM交叉编译: QT for BeagleBone 我正在遵循这些步骤,但是当尝试编译默认的QT项目时,我遇到了一个错误:QMainWindow Error。我错过了什么吗?如果找不到,则没有位于编译器查找的位置。你应该怎么办才能解决这个问题? 这是我的项目文件: Picture of my project

1
你能发一下你的.pro文件吗?你可能在QT变量中缺少了“widgets”选项。 - HappyCactus
1
sysroot字段有点可疑。检查一下工具包配置,那个“!”黄色标志告诉你有些问题。 - HappyCactus
我尝试了这个https://dev59.com/YWMl5IYBdhLWcg3wJD9S,但它不起作用。 - user5387687
sysroot应该指向哪里?@HappyCactus - user5387687
这取决于你的编译器。为了保险起见,尽量将其留空。 - HappyCactus
显示剩余3条评论
5个回答

9

在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 自动读取文件更改并更新自身。
(如果您已禁用此选项,请尝试重新启动 Qt)

除此之外,将greaterThan(QT_MAJOR_VERSION, X): QT += widgets中的“X”替换为前版本号也对我有效。(X = 您的主版本号 - 1

(如果使用Qt 5.x,请使用4代替5,使用Qt 3.x请将3替换为2,以此类推...)

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

我希望至少能帮助一个遇到相同问题的人。;)

问候Zitro


2

如果你在编译Qt源代码时遇到了一些错误,或者缺少某些文件,请尝试在Qt的包含目录中搜索QMainWindow.h。似乎它位于/usr/local/qt4.8.2-armhf/include。例如,你可以像这样搜索:find * /usr/local/qt4.8.2-armhf/include/ | grep QMainWindow


0
首先,您需要确保交叉编译器正常工作,编译“hello world”:std::cout << "hi\n",并使用命令行中的交叉编译器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/local/oecore-i686/sysroots/armv7ahf-vfp-neon-angstrom-linux-gnueabi/

在这个目录中有"bin"和"lib"文件夹,里面装满了ARM可执行文件和ARM库文件,这就是所谓的"sysroot",它是你的设备文件系统克隆到交叉编译器中的一部分,可以帮助你链接应用程序。同时,请确保在Qt Creator首选项中为交叉编译设置正确的qmake路径,应该像这样:/usr/local/qt4.8.2-armhf/bin/qmake


0

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

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

我找到了这个链接,您可能想要查看一下:derekmolloy.ie/beaglebone/qt-with-embedded-linux-on-the-beaglebone/#Source_Code


0

在Windows上,请检查您的项目文件夹是否有像 (、) 或 # 这样的奇怪字符...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接