有没有办法用Q ++编写Qt5程序到Ubuntu Touch?

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

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

简单的方法

您可以使用Ubuntu SDK Alpha的实验性function。 它的美妙之处在于您不需要交叉编译。

首先连接到您的设备:

  1. 将设备插入计算机的USB端口
  2. 启动Qt Creator
  3. 单击设备选项卡
  4. 单击“启用”按钮以启用开发人员模式
  5. 在Ubuntu设备上转到工具> Ubuntu>设备>启用> Cpp编译(实验)

然后开始黑客攻击:

  1. 在Qt Creator中打开您的应用程序项目
  2. 在Ubuntu设备上转到Build> Ubuntu> Build C ++项目(实验性)

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

你走吧! 🙂

如果你喜欢挑战

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

  1. SSH进入运行Ubuntu Touch Developer Preview的设备
  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. 使用您选择的构建系统构建您的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.将 .desktop文件添加到/ usr / share / applications /
7.在/usr/share/qml-phone-shell/Applications/applications.js中添加行(我认为可能是可选的)
8.推送您的应用和资源
9.重启shell或手机
10.你的应用程序! (我测试了这个!)

基于先前答案的扩展指令。 请记住:此指令描述了在PC上为Ubuntu Touch开发的Qt / Qml, 没有与设备的ssh连接,并且需要像linaro这样的交叉编译工具

第1部分:创造环境

  1. 获取Ubuntu SDK
  2. 获取工具链: Linaro或者wia sudo apt-get install gcc-arm-linux-gnueabihf安装工具链及其依赖项。
  3. 获取这两个libs libhybrisplatform-api以及armhf的Qt5库(可以从设备获得)或者只是下载所有库的tarball(来自tarball你需要的库和头文件,把它们放在/ usr / arm-gnueabihf / lib/ usr / arm-gnueabihf / include )。
  4. 获取修改后的qmake配置 – 在mkspecs取消它(例如,我的/ usr / share / qt5 / mkspecs / )。 里面的红外目录 – qmake.conf 。 如果在编译时遗漏了某些内容 – 则需要更改该文件中的路径变量。
  5. 对于Qt Creator创建新的编译配置文件:在编译和部署设置中,在选项卡编译器上 – 添加新编译器( arm-linux-gnueabihf-gcc ),在选项卡上工具 – 添加新配置文件并指定设备类型 – 通用linux-device, 编译器 -那些,你被添加了Profile Qt – generic(我使用的不是重新编译的Qt !!!), Qt mkspec – linux-arm-gnueabihf-gcc。 这就是编译所需要的一切。 对于调试 – 需要指定其他参数。 除此之外,最好从源代码重新编译Qt。 但我懒得这样)

第2部分:部署应用程序

  1. Wia adb push / data / ubuntu / 推送应用和资源。 操作系统可以在/ 找到它们。 注意,没有/ data / ubuntu部分。 这部分只需要adb
  2. 接下来,需要制作 .desktop文件:
    • adb root
    • adb shell
    • ubuntu_chroot shell – 切换到设备上的bash
    • cd / usr / share / applications – 进入带* .desktop文件的文件夹
    • 复制其中任何一个并编辑(使用vi )以用于您的应用目的(名称,图标,路径等)
  3. 下一步,与之前相同(您已在设备的bash中):
    编辑文件(使用vi/usr/share/qml-phone-shell/Applications/applications.js ,在文件中为您的应用添加部分,与该文件中的其他应用程序相同。 它必须与 .desktop文件中的相同
  4. 重启shell(通过杀死qml-phone-shell进程)或重启手机( reboot -p
  5. 现在,您可以从应用页面启动您的应用!

测试示例和原始材料: EN指令和RU指令,带有下载工具链和必要库的链接。