栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

qt远程调试imx6,勾选了run in terminal却无法开启终端

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

qt远程调试imx6,勾选了run in terminal却无法开启终端

开发环境:

  • 主机:ubuntu18.04 LTS
  • 目标板:imx6q
  • 交叉工具链:poky-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-vfp-neon-toolchain-1.7

问题出现背景:

1. qtcreator的启动

imx6 qt开发环境的搭建,不用赘述,随便一搜都是。其中最后一步,打开qtcreator时,一般是执行一个qtcreator_start.sh(文件名随意)脚本打开,因为需要更改环境变量,通常我们在这个脚本中的内容是这样的:

#!/bin/bash
source /opt/poky/1.7/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi #更改交叉编译所需的环境变量
/home/linux/Qt5.14.2/Tools/QtCreator/bin/qtcreator.sh & #执行qtcreator安装路径下自带的启动脚本

2. 远程部署
配置远程部署时遇到一点儿小问题,以后会补上一篇记录下来,本文不赘述。网上相关资料也很多。远程部署大大方便了程序的交叉编译和调试,不再需要挂载、复制等操作。直接在主机上就可以运行、调试代码(本例中的程序名为vc200)。
为了能对程序的运行进行手动终止等输入操作,在“项目 -> Build & Run -> Run” 设置中,应勾选“Run in terminal”。

如果不勾选“run in terminal”,则程序只会在qt的“应用程序输出”窗口显示输出信息,无法手动输入交互(比如无法使用ctrl+c终止程序)。

问题描述:
基于上述背景,按道理,ctrl+r 运行程序后,会自动弹出一个终端,程序在该终端运行。然而,应用程序输出窗口显示已启动,但是就是死活不弹出终端……

问题分析:
在开启qtcreator的终端窗口发现,每次按ctrl+r运行时,终端有输出以下错误信息:

然后,如果在启动qtcreator的sh脚本里,注释掉

#source /opt/poky/1.7/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi

这一句,ctrl+r 就可以正常开启终端,没有报错信息。

好了,问题似乎了然,那肯定是更改了环境变量导致的。

接下来,去看下这个文件吧。

不是报 python error吗?那我找找和python相关的,只有一个地方,就是PYTHONHOME这个环境变量。

解决方案

通过上面分析可知,原因是交叉工具链修改了python相关的环境变量,导致python的调用位置发生变化,应该调用主机下的/usr/bin/python,而不是调用交叉工具链的。

解决方法很简单,注释掉这一行就行。

如果程序里不涉及python调用应该没影响。即使需要调用,也可以在程序中动态设置,参考下面文章:
解决PYTHONHOME这个环境变量带来的问题
………………
好了,终于不用在主机、目标板的多窗口之间来回切换了,告别挂载、复制等一些系列操作。

终!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/268949.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号