简单的方法

简单的方法

我正在用 Qt5 和 C++ 创建一个程序,我想为 Ubuntu Touch Preview 或 Ubuntu 桌面臂编译我的程序。

我在 Nexus 7 上运行这些系统。我已经找到了正确的 C++ 编译器(arm-linux-gnueabihf-g++),但是如何让 Qt5 运行呢?

答案1

简单的方法

您可以使用 Ubuntu SDK Alpha 的实验性功能。它的优点在于您不需要交叉编译。

首先连接到您的设备:

  1. 将设备插入电脑的 USB 端口
  2. 启动 Qt Creator
  3. 点击设备选项卡
  4. 点击启用按钮以启用开发者模式
  5. 转到工具>Ubuntu>设备>启用>在Ubuntu设备上进行Cpp编译(实验性)

然后开始黑客攻击:

  1. 在 Qt Creator 中打开你的应用项目
  2. 转到“构建”>“Ubuntu”>“在 Ubuntu 设备上构建 C++ 项目(实验性)”

在设备上构建 C++ Touch 项目

然后你就可以出发了!:-)

如果你喜欢挑战

您可以手动编译设备上的应用程序。您可能想尝试以下(未经测试的)步骤:

  1. 通过 SSH 连接到你的设备运行 Ubuntu Touch 开发者预览版

  2. 安装所需的开发包。根据您的需要,您可能需要将包添加到列表中,但这是第一步:

    sudo apt-get install qt5-default qtbase5-dev libqt5v8-5-dev qtdeclarative5-dev libqt5xmlpatterns5-dev qtscript5-dev qttools5-dev qt3d5-dev qtmultimedia5-dev libqt5svg5-dev qtdeclarative5-dev-tools qttools5-dev-tools qtlocation5-dev qtsensors5-dev qtpim5-dev qt-components-ubuntu

  3. 使用您选择的构建系统(cmake、qmake 等...)构建您的 C++ 应用程序

答案2

还有另一个建议(第三种方法,但很难):
1. 获取linaro 工具链对于 armhf
2. 获取和 platform-api (来自 phablet-team 的launchpad.net
3.从设备获取动态库(/lib/arm-linux-gnueabihf/usr/lib/arm-linux-gnueabihf/
4.补丁制作规格为了制作
5. 编译
6. 添加<你的应用>.desktop文件到/usr/共享/应用程序/
7. 添加行/usr/share/qml-phone-shell/应用程序/applications.js(我认为可能是可选的)
8. 推送您的应用和资源
9. 重启 shell 或手机
10. 您的应用已经运行!(我测试过了!)

答案3

基于上一个答案的扩展说明。请记住:本说明描述了在 Ubuntu Touch 的 PC 上进行 Qt/Qml 开发无需 ssh与设备的连接以及需要交叉编译工具像 linaro。

第 1 部分:制作环境

  1. 得到Ubuntu SDK
  2. 获取工具链:利纳罗或 wiasudo apt-get 安装 gcc-arm-linux-gnueabihf安装工具链及其依赖项。
  3. 获取这两个库平台 API加上用于 armhf 的 Qt5 库(可以从设备中获取)或者直接下载压缩包包含所有库(从 tarball 中获取你需要的库和头文件,将它们放在/usr/arm-gnueabihf/lib/usr/arm-gnueabihf/包含)。
  4. 获取修改qmake 配置- 解压制作规格(例如,我的/usr/share/qt5/mkspecs/). 在 unrared 目录中 -qmake.conf。如果编译时遗漏了某些内容 - 则需要更改该文件中的路径变量。
  5. 为了Qt Creator创建新的编译配置文件:编译和部署设置,在选项卡上编译器- 添加新的编译器(arm-linux-gnueabihf-gcc),在标签上工具- 添加新的配置文件并指定设备类型- 通用 Linux 设备, 编译器- 您已添加简介 Qt- 通用(我使用的是未重新编译的 Qt!),Qt mkspec- linux-arm-gnueabihf-gcc。这就是编译所需的全部内容。对于调试 - 需要指定其他参数。除此之外,最好从源代码重新编译 Qt。但我很懒,所以)

第 2 部分:部署应用程序

  1. 威亚adb push /data/ubuntu/<some_path>推送应用和资源。操作系统可以在以下位置找到它们/<某个路径>。请注意,没有/数据/ubuntu部分。该部分仅需要亚行
  2. 接下来,需要<应用程序名称>.desktop文件:
    • adb root
    • adb shell
    • ubuntu_chroot 外壳- 切换到狂欢在设备上
    • cd /usr/share/应用程序- 进入包含 *.desktop 文件的文件夹
    • 复制其中任何一个并编辑(使用)用于您的应用目的(名称、图标、路径等)
  3. 下一步,与上一步相同(您已经在狂欢在设备上):
    编辑文件(使用/usr/share/qml-phone-shell/应用程序/applications.js,在文件中添加您的应用的部分,与其他应用在该文件中的部分相同。它必须与<应用程序名称>.desktop文件
  4. 重新启动 shell(通过终止qml-手机外壳进程)或重新启动手机(重启-p
  5. 现在您可以从启动您的应用程序应用页!

试验例及原始资料: EN 指令RU 指令包含下载工具链和基本库的链接。

相关内容