有没有办法用Q ++编写Qt5程序到Ubuntu Touch?
我正在用Qt5和C ++创建一个程序,我想编译我的程序用于Ubuntu Touch Preview或Ubuntu桌面设备。
我在Nexus 7上运行这些系统。我找到了正确的C ++编译器( arm-linux-gnueabihf-g++
),但是如何让Qt5工作呢?
简单的方法
您可以使用Ubuntu SDK Alpha的实验性function。 它的美妙之处在于您不需要交叉编译。
首先连接到您的设备:
- 将设备插入计算机的USB端口
- 启动Qt Creator
- 单击设备选项卡
- 单击“启用”按钮以启用开发人员模式
- 在Ubuntu设备上转到工具> Ubuntu>设备>启用> Cpp编译(实验)
然后开始黑客攻击:
- 在Qt Creator中打开您的应用程序项目
- 在Ubuntu设备上转到Build> Ubuntu> Build C ++项目(实验性)
你走吧! 🙂
如果你喜欢挑战
您可以想象手动编译设备上的应用程序。 您可能想尝试以下(未经测试的)步骤:
- SSH进入运行Ubuntu Touch Developer Preview的设备
-
安装所需的开发包。 根据您的需要,您可能需要将包添加到列表中,但这是第一次:
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
-
使用您选择的构建系统构建您的C ++应用程序(cmake,qmake等…)
还有另一个建议(第三种方式,但很难):
1.为armhf获得linaro工具链
2.获取libhybris和platform-api(来自launchpad.net的 phablet-team)
3.从设备获取动态库( / lib / arm-linux-gnueabihf和/ usr / lib / arm-linux-gnueabihf / )
4.修补qmake的 mkspecs
5.编译
6.将
7.在/usr/share/qml-phone-shell/Applications/applications.js中添加行(我认为可能是可选的)
8.推送您的应用和资源
9.重启shell或手机
10.你的应用程序! (我测试了这个!)
基于先前答案的扩展指令。 请记住:此指令描述了在PC上为Ubuntu Touch开发的Qt / Qml, 没有与设备的ssh连接,并且需要像linaro这样的交叉编译工具 。
第1部分:创造环境
- 获取Ubuntu SDK
- 获取工具链: Linaro或者wia sudo apt-get install gcc-arm-linux-gnueabihf安装工具链及其依赖项。
- 获取这两个libs libhybris和platform-api以及armhf的Qt5库(可以从设备获得)或者只是下载所有库的tarball(来自tarball你需要的库和头文件,把它们放在/ usr / arm-gnueabihf / lib和/ usr / arm-gnueabihf / include )。
- 获取修改后的qmake配置 – 在mkspecs中取消它(例如,我的/ usr / share / qt5 / mkspecs / )。 里面的红外目录 – qmake.conf 。 如果在编译时遗漏了某些内容 – 则需要更改该文件中的路径变量。
- 对于Qt Creator创建新的编译配置文件:在编译和部署设置中,在选项卡编译器上 – 添加新编译器( arm-linux-gnueabihf-gcc ),在选项卡上工具 – 添加新配置文件并指定设备类型 – 通用linux-device, 编译器 -那些,你被添加了Profile Qt – generic(我使用的不是重新编译的Qt !!!), Qt mkspec – linux-arm-gnueabihf-gcc。 这就是编译所需要的一切。 对于调试 – 需要指定其他参数。 除此之外,最好从源代码重新编译Qt。 但我懒得这样)
第2部分:部署应用程序
- Wia adb push / data / ubuntu /
推送应用和资源。 操作系统可以在/ 找到它们。 注意,没有/ data / ubuntu部分。 这部分只需要adb 。 - 接下来,需要制作
.desktop 文件:- adb root
- adb shell
- ubuntu_chroot shell – 切换到设备上的bash
- cd / usr / share / applications – 进入带* .desktop文件的文件夹
- 复制其中任何一个并编辑(使用vi )以用于您的应用目的(名称,图标,路径等)
- 下一步,与之前相同(您已在设备的bash中):
编辑文件(使用vi ) /usr/share/qml-phone-shell/Applications/applications.js ,在文件中为您的应用添加部分,与该文件中的其他应用程序相同。 它必须与.desktop 文件中的相同 - 重启shell(通过杀死qml-phone-shell进程)或重启手机( reboot -p )
- 现在,您可以从应用页面启动您的应用!
测试示例和原始材料: EN指令和RU指令,带有下载工具链和必要库的链接。