我正在用 Qt5 和 C++ 创建一个程序,我想为 Ubuntu Touch Preview 或 Ubuntu 桌面臂编译我的程序。
我在 Nexus 7 上运行这些系统。我已经找到了正确的 C++ 编译器(arm-linux-gnueabihf-g++
),但是如何让 Qt5 运行呢?
答案1
简单的方法
您可以使用 Ubuntu SDK Alpha 的实验性功能。它的优点在于您不需要交叉编译。
首先连接到您的设备:
- 将设备插入电脑的 USB 端口
- 启动 Qt Creator
- 点击设备选项卡
- 点击启用按钮以启用开发者模式
- 转到工具>Ubuntu>设备>启用>在Ubuntu设备上进行Cpp编译(实验性)
然后开始黑客攻击:
- 在 Qt Creator 中打开你的应用项目
- 转到“构建”>“Ubuntu”>“在 Ubuntu 设备上构建 C++ 项目(实验性)”
然后你就可以出发了!:-)
如果你喜欢挑战
您可以手动编译设备上的应用程序。您可能想尝试以下(未经测试的)步骤:
通过 SSH 连接到你的设备运行 Ubuntu Touch 开发者预览版
安装所需的开发包。根据您的需要,您可能需要将包添加到列表中,但这是第一步:
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
使用您选择的构建系统(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 部分:制作环境
- 得到Ubuntu SDK
- 获取工具链:利纳罗或 wiasudo apt-get 安装 gcc-arm-linux-gnueabihf安装工具链及其依赖项。
- 获取这两个库库和平台 API加上用于 armhf 的 Qt5 库(可以从设备中获取)或者直接下载压缩包包含所有库(从 tarball 中获取你需要的库和头文件,将它们放在/usr/arm-gnueabihf/lib和/usr/arm-gnueabihf/包含)。
- 获取修改qmake 配置- 解压制作规格(例如,我的/usr/share/qt5/mkspecs/). 在 unrared 目录中 -qmake.conf。如果编译时遗漏了某些内容 - 则需要更改该文件中的路径变量。
- 为了Qt Creator创建新的编译配置文件:编译和部署设置,在选项卡上编译器- 添加新的编译器(arm-linux-gnueabihf-gcc),在标签上工具- 添加新的配置文件并指定设备类型- 通用 Linux 设备, 编译器- 您已添加简介 Qt- 通用(我使用的是未重新编译的 Qt!),Qt mkspec- linux-arm-gnueabihf-gcc。这就是编译所需的全部内容。对于调试 - 需要指定其他参数。除此之外,最好从源代码重新编译 Qt。但我很懒,所以)
第 2 部分:部署应用程序
- 威亚adb push /data/ubuntu/<some_path>推送应用和资源。操作系统可以在以下位置找到它们/<某个路径>。请注意,没有/数据/ubuntu部分。该部分仅需要亚行。
- 接下来,需要<应用程序名称>.desktop文件:
- adb root
- adb shell
- ubuntu_chroot 外壳- 切换到狂欢在设备上
- cd /usr/share/应用程序- 进入包含 *.desktop 文件的文件夹
- 复制其中任何一个并编辑(使用六)用于您的应用目的(名称、图标、路径等)
- 下一步,与上一步相同(您已经在狂欢在设备上):
编辑文件(使用六)/usr/share/qml-phone-shell/应用程序/applications.js,在文件中添加您的应用的部分,与其他应用在该文件中的部分相同。它必须与<应用程序名称>.desktop文件 - 重新启动 shell(通过终止qml-手机外壳进程)或重新启动手机(重启-p)
- 现在您可以从启动您的应用程序应用页!