0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

搭建一种跨平台qt5远程编译环境

冬至子 来源:ITRelief 作者:Sachefgh Xu 2023-07-25 15:05 次阅读

前言

所谓的跨平台qt5远程编译环境,就是实现在本机的VS上写Qt程序,然后在远程的linux机器上进行编译,得到Qt的Gui或非GUI程序。

跟交叉编译比起来,远程编译不需要进行复杂的交叉编译工具配置;由于是自机编译,也不会存在开发工具版本匹配问题,稳定性高于交叉编译;远程编译的缺点也比较突出:目标机需要安装完整的开发工具,编译速度会受到目标机性能的严重限制。

简言之,对于一些装了Linux,但是性能有限、缺少相应开发文档、交叉编译存在风险的机器/开发板,比如说来源不明的x86工控机、Orange/Banana Pi 这类仿照树莓派的开发板,推荐通过远程编译的方式进行开发部署。

对于树莓派、Tinker Board之类的开发板,VisualGDB提供了经测试的交叉编译工具、直接使用即可。

测试环境

开发环境:电脑(Win10 21H2,x64)+VS2019+VisualGDB5.6+Qt5.11, VS安装了Qt插件

目标环境:80收的工控机,处理器为Atom D2550, 已经安装64位Debian11(带GNOME图形)。[关在上海两个月了,条件艰苦,只能找到这么一台机器了,唉]

一、目标机准备

1.开启ssh并允许root登录

VisualGDB在之后调试的时候如果用sudo的方式调试比较容易报错,最好直接用root连接。

目标机上:

nano /etc/ssh/sshd_config

用vim也可以,个人觉得nano比vim方便多了。修改以下项:

PermitRootLogin yes #允许root登录
PermitEmptyPasswords no #不允许空密码登录
PasswordAuthentication yes # 设置是否使用口令验证。
X11Forwarding yes #启用远程图形支持

重启一下ssh服务

/etc/init.d/sshd retart

再测试一下用root连接目标机。root登录有风险,以后机子要联网使用的时候记得关

2.允许通过root登录桌面

目标机上:

nano /etc/gdm3/daemon.conf

在 [security] 下添加 AllowRoot=True,保存退出。

nano /etc/pam.d/gdm-password

把auth required pam_succeed_if.so user != root quiet_success这行注释掉。

保存退出,reboot一下机器,登录的时候就可以用root账户了。

3.安装编译环境

①检查一下sources.list,换一个靠谱点的镜像源

②apt upgrade一下。

③安装编译工具:

apt install cmake
apt install build-essential

④qt5的开发工具:

apt install qt5-qmake
apt install qtbase5-dev
apt install qtdeclarative5-dev
apt install qtwebengine5-dev
apt install qml-module-qt-labs-platform

其他qt模块可以在需要使用的时候按需安装:

qtconnectivity5-dev qtmobility-dev qttools5-dev tmultimedia5-dev libqt5opengl5-dev qtpositioning5-dev tscript5-dev libqt5sensors5-dev libqt5serialport5-dev libqt5svg5-dev libqt5webkit5-dev libqt5x11extras5-dev libqt5xmlpatterns5-dev

qtcreator在目标机上不需要,不用安装。

⑤检查安装

qmake --version 检查一下qt版本:

图片

二、VS+VisualGDB创建项目

①VS创建项目界面选择Linux Project Wizard:

图片

②Project Type选择:

图片

③连接目标机:

图片

④接下来是源文件的存储方式,这里提供存储在开发用的电脑(Windows)和存储在目标机上两种选项:

图片

VisualGDB推荐的方式是把文件存在目标机上,通过SSH取过来。但在开发GUI时会使用qtdesigner读取.ui文件,实际使用时很容易出现同步错误的情况,个人推荐还是本地存储,编译时再上传到目标机,配置方法:

图片

注意:同步文件类型默认没有txt类型,需要手动加上。如果不加就会导致CMakelists.txt无法同步,导致报错。

⑤选择目标机上IncludeDir:

※目标机编译需包含的内容,也可以之后补充:

图片

⑥完成项目创建

默认创建的项目是带ui的,不过可以比较方便地修改成console程序。

⑦运行结果:

图片

三、项目高级设置/工具

可右键项目打开VisualGDB属性配置项目的高级选项,推荐探索熟悉一下。

在调试选项中:

图片

可以看到默认Console输出是连接到开发电脑的,GUI也是通过X Window输出在开发电脑上(如果没有安装Xterm或XMing时VisualGDB会自动下载安装,很方便)。

但我们在开发一些系统的时候,比如说收银机,会更希望在目标机连接的屏幕上看到结果,在这里就可以修改选项。

注意:如果想在target上显示GUI,要确保此时桌面系统以root登陆,否则调试时会报错。

VisualGDB提供了SSH Console工具,可以快速建立SSH连接、传输文件:

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19165

    浏览量

    229131
  • 工控机
    +关注

    关注

    10

    文章

    1684

    浏览量

    50443
  • Linux系统
    +关注

    关注

    4

    文章

    591

    浏览量

    27355
  • GUI系统
    +关注

    关注

    0

    文章

    3

    浏览量

    5909
  • 树莓派
    +关注

    关注

    116

    文章

    1699

    浏览量

    105525
收藏 人收藏

    评论

    相关推荐

    【Rico Board试用体验】QT编译环境搭建与hello mier实现

    最后安装的时候安装到 /media/data/myir/am335x/qt4.8.5 , 这个特别注意。后面搭建这个环境需要这个路径,否则QT应用程序会报错 。
    发表于 12-24 17:43

    beaglebone black + wireshark屏 + qt5

    最近淘了块BBB板子和个微雪的4.3寸屏幕,打算移植QT5,由于QT5需要c++11的支持,所以用的编译工具
    发表于 05-13 17:24

    【NanoPC-T3 Plus试用体验】安装QT5&搭建个界面程序

    最近忙着春招面试,有段时间没有更新帖子了,以后会陆续补上。由于项目中需要用到QT的程序,因此安装QT5的软件支持库和QT开发环境是必须的:
    发表于 03-08 14:27

    Linux QT5程序编译准备源码

    Linux QT5程序编译准备源码  打开网盘到 5_MY-Demo,下载 MY-Linux-QT5-Demo-AboutUs-svn*.tar.bz2 文件,并复制到虚拟机。解压源码
    发表于 03-08 11:27

    qt creator编译QT5应用

    `编译器:arm-poky-linux-gnueabi-gcc文件版本:L4115-fsl-image-qt5-myimx6a9.tar.bz21.交叉编译工具安装教程编译工具:chm
    发表于 05-05 15:17

    Qt5远程是怎样去调试ARM主机环境

    Qt5远程调试ARM主机环境:Ubuntu 18.04.4 LTS嵌入式环境:Linux 3.2.0Qt版本:Qt Creator 4.5.
    发表于 11-04 07:34

    如何利用Boot to Qt软件包来实现Qt5

    关键词:摘要:Qt个领先的平台应用和UI 开发框架(Framework),使用标准C++,适用于桌面,嵌入式和移动平台。本文着重就利用
    发表于 11-04 06:24

    平台Qt调试作个简单的介绍

    Qt自带调试功能,如果是主机上的程序可以直接调试,非常方便。同时,Qt平台的编程语言,在主机上调试其他
    发表于 12-14 08:46

    怎样去搭建一种RK3399 ARM QT开发环境

    怎样去搭建一种RK3399 ARM QT开发环境呢?有哪些搭建步骤?
    发表于 03-07 06:57

    Qt5环境下如何配置OpenCV

    本文档的主要内容详细介绍的是Qt5环境下如何配置OpenCV。
    发表于 11-22 16:53 17次下载
    <b class='flag-5'>Qt5</b><b class='flag-5'>环境</b>下如何配置OpenCV

    Qt5远程调试嵌入式linux

    Qt5远程调试ARM主机环境:Ubuntu 18.04.4 LTS嵌入式环境:Linux 3.2.0Qt版本:Qt Creator 4.5.
    发表于 11-01 17:06 22次下载
    <b class='flag-5'>Qt5</b><b class='flag-5'>远程</b>调试嵌入式linux

    Qt5 学习之路及嵌入式开发教程14:Qt5主窗口---界面设置

    Qt5 学习之路及嵌入式开发教程14:Qt5主窗口---界面设置这次任务要完成Qt5主窗口的界面设计Qt5主窗口布局及基本元素基本元素QMainWindow是
    发表于 11-03 09:51 12次下载
    <b class='flag-5'>Qt5</b> 学习之路及嵌入式开发教程14:<b class='flag-5'>Qt5</b>主窗口---界面设置

    QT5多个layoutWidget引起程序运行出错

    QT5 多个layoutWidget 引起程序运行出错
    发表于 11-19 09:23 862次阅读

    我用STM32MP1做了个疫情监控平台2—Qt环境搭建

    Qt平台的应用程序开发框架。使用Qt开发的应用程序,只需要编写套代码,然后把这套代码
    发表于 01-26 19:35 2次下载
    我用STM32MP1做了个疫情监控<b class='flag-5'>平台</b>2—<b class='flag-5'>Qt</b><b class='flag-5'>环境</b><b class='flag-5'>搭建</b>

    QT环境搭建教程

    QT套应用程序开发类库,但与MFC不同,QT平台的开发类库。
    的头像 发表于 11-07 10:34 1286次阅读