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 上检查您的项目文件夹没有奇怪的字符,例如:( , ) 或 # ...
我在 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 上检查您的项目文件夹没有奇怪的字符,例如:( , ) 或 # ...