QT Creator,编译和部署一个c或c++到远程设备(BeagleBone或R pi)
QT Creator, compiling and deploying a c or c++ to a remote device (BeagleBone or R pi)
我从几天前开始尝试在我的主机(Ubuntu 64 位)上使用 qt-creator 为我的 beaglebone 和 raspberry pi 设备编写和开发程序。
我查找了 'qt-creator cross compile beagle, raspberry etc...',它引导我找到了数百个链接和教程,内容涉及 如何为我的目标平台 编译 qt-creator。但说真的,那不是我的主意。我想要的只是简单地使用我的电脑来开发我的程序,然后最近将它们部署到远程设备。
所以首先是一个菜鸟问题:我的想法有问题吗?我真的应该在我的电脑上为 beaglebone 或 raspberry 编译 qt 的源代码来编写最近应该在该设备上 运行 的程序吗????
我不会再为其他平台编译qt-creator,所以我不知道如何找到正确的方法。网上很多信息都是误导。
所以在花了很多时间寻找正确的信息之后,我想出了以下程序:
首先我在我的 64 位 Ubuntu 上安装了一个 arm-gnu 工具链。
sudo apt-get install build-essential libc6-armhf-cross libc6-dev-armhf-cross binutils-arm-linux-gnueabihf linux-libc-dev-armhf-cross libstdc++6-armhf-cross gcc-4.8-arm-linux-gnueabihf g++-4.8-arm-linux-gnueabihf
然后我从 Ubuntu 上的存储库安装了 qt-creator:
sudo apt-get install qtcreator
我尝试使用 arm 工具链配置使用 qt 来编译我的项目(见下图)
这里:
但是当我开始一个新项目时,qt-creator 似乎无法识别新工具包:
现在:我真的很困惑,我可能认为问题与qt有关,但我不确定,我是否可以在ubuntu 64位上编译然后运行 我在远程设备上的应用是否正确。
因此,如果您能回答上述问题,那就太好了。
更新:如果我在我的套件中添加 QT 版本会怎样???
碰巧 gnueabi 编译器与该选项冲突,出现以下问题:
我想再说一遍,我不需要在我的远程设备上使用 qt-library 或类似的东西。我只需要将 qt-IDE 用作我的项目(主要是 c 或 c++ 普通项目)IDE
您需要一个完整的工具链
工具链只是一组事物的名称:
- 目标平台的编译器(或你的情况下的交叉编译器)
- Sysroot:目标平台中文件系统的映像
- 一个交叉编译qmake
- QtCreator 和工具包
你缺少交叉编译qmake. .
此外,您需要一个用于 Pi 的工具链,以及另一个用于 Beagle 的工具链。
在 Derek Molloy 关于这个主题的 Beaglebone 教程中,他在第 18 分钟左右提到直接通过命令 sudo apt-get install qtcreator 安装 QT,不会安装 QT 应用程序的所有功能。
尝试直接从 Qt 站点下载 QT。
貌似在问题更新之前,你连有效的工具包都没有,所以IDE也无能为力。您需要创建一个工具包,并将 Qt 版本设置为 None - 因为您安装的任何 Qt 版本都不适用于 ARM 目标。因此,只要它是 none,它就应该可以工作,假设您已经为目标安装了完整的 ARM 工具链,包括 Linux-特定位 - 因为您没有构建一个简单的应用程序,但是一个将 运行 on Linux.
的应用程序
创建新项目时,确保 select 非 Qt 项目,C 或 C++,并选择 CMake 构建系统(不是 qmake 或 qbs ).
要对此进行测试,请先为您的主机平台创建一个工具包,没有 select使用 Qt 版本(将其设置为 None) ,并确保您可以创建一个简单的 C 项目并构建它(选择合适的编译器等)。完成后,您应该知道如何继续构建您的 ARM Linux 目标。它真的根本不应该有问题(根据我的经验,这都是 "just works"),所以你可能没有安装一些主要的东西(与目标工具链相关,与 Qt 或 Qt Creator 无关)。
我从几天前开始尝试在我的主机(Ubuntu 64 位)上使用 qt-creator 为我的 beaglebone 和 raspberry pi 设备编写和开发程序。 我查找了 'qt-creator cross compile beagle, raspberry etc...',它引导我找到了数百个链接和教程,内容涉及 如何为我的目标平台 编译 qt-creator。但说真的,那不是我的主意。我想要的只是简单地使用我的电脑来开发我的程序,然后最近将它们部署到远程设备。
所以首先是一个菜鸟问题:我的想法有问题吗?我真的应该在我的电脑上为 beaglebone 或 raspberry 编译 qt 的源代码来编写最近应该在该设备上 运行 的程序吗????
我不会再为其他平台编译qt-creator,所以我不知道如何找到正确的方法。网上很多信息都是误导。
所以在花了很多时间寻找正确的信息之后,我想出了以下程序:
首先我在我的 64 位 Ubuntu 上安装了一个 arm-gnu 工具链。
sudo apt-get install build-essential libc6-armhf-cross libc6-dev-armhf-cross binutils-arm-linux-gnueabihf linux-libc-dev-armhf-cross libstdc++6-armhf-cross gcc-4.8-arm-linux-gnueabihf g++-4.8-arm-linux-gnueabihf
然后我从 Ubuntu 上的存储库安装了 qt-creator:
sudo apt-get install qtcreator
我尝试使用 arm 工具链配置使用 qt 来编译我的项目(见下图)
这里:
但是当我开始一个新项目时,qt-creator 似乎无法识别新工具包:
现在:我真的很困惑,我可能认为问题与qt有关,但我不确定,我是否可以在ubuntu 64位上编译然后运行 我在远程设备上的应用是否正确。
因此,如果您能回答上述问题,那就太好了。
更新:如果我在我的套件中添加 QT 版本会怎样???
碰巧 gnueabi 编译器与该选项冲突,出现以下问题:
我想再说一遍,我不需要在我的远程设备上使用 qt-library 或类似的东西。我只需要将 qt-IDE 用作我的项目(主要是 c 或 c++ 普通项目)IDE
您需要一个完整的工具链
工具链只是一组事物的名称:
- 目标平台的编译器(或你的情况下的交叉编译器)
- Sysroot:目标平台中文件系统的映像
- 一个交叉编译qmake
- QtCreator 和工具包
你缺少交叉编译qmake.
此外,您需要一个用于 Pi 的工具链,以及另一个用于 Beagle 的工具链。
在 Derek Molloy 关于这个主题的 Beaglebone 教程中,他在第 18 分钟左右提到直接通过命令 sudo apt-get install qtcreator 安装 QT,不会安装 QT 应用程序的所有功能。
尝试直接从 Qt 站点下载 QT。
貌似在问题更新之前,你连有效的工具包都没有,所以IDE也无能为力。您需要创建一个工具包,并将 Qt 版本设置为 None - 因为您安装的任何 Qt 版本都不适用于 ARM 目标。因此,只要它是 none,它就应该可以工作,假设您已经为目标安装了完整的 ARM 工具链,包括 Linux-特定位 - 因为您没有构建一个简单的应用程序,但是一个将 运行 on Linux.
的应用程序创建新项目时,确保 select 非 Qt 项目,C 或 C++,并选择 CMake 构建系统(不是 qmake 或 qbs ).
要对此进行测试,请先为您的主机平台创建一个工具包,没有 select使用 Qt 版本(将其设置为 None) ,并确保您可以创建一个简单的 C 项目并构建它(选择合适的编译器等)。完成后,您应该知道如何继续构建您的 ARM Linux 目标。它真的根本不应该有问题(根据我的经验,这都是 "just works"),所以你可能没有安装一些主要的东西(与目标工具链相关,与 Qt 或 Qt Creator 无关)。