电子说
前言
所谓的跨平台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连接、传输文件:
全部0条评论
快来发表一下你的评论吧 !