我在Ubuntu 14.04 LTS主机上使用QT Creator 3.5.1和QT 4.8.2,我配置了用于ARM交叉编译的BeagleBone Kit,如下所示:
我正在关注these steps,但在尝试编译默认QT项目时遇到错误
我错过了什么吗?如果找不到,则它不在编译器所在的位置。 你如何解决这个问题?
这是我的项目文件
答案 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上检查您的项目文件夹没有奇怪的字符,如:(,)或#...