热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Qt4程序升级到Qt5后的问题

我们公司的程序本来是QT4开发的,但是由于要用到串口,本来用的是QEXTSERIALPORT,用了以后感觉不是很好,所以升级了Qt5,结果升级过后程序编译通过后,无法运行,debug的时候发现在程序运
我们公司的程序本来是QT4开发的,但是由于要用到串口,本来用的是QEXTSERIALPORT,用了以后感觉不是很好,所以升级了Qt5,结果升级过后程序编译通过后,无法运行,debug的时候发现在程序运行到main函数之前跳出来一个段错误,如下图。


我换了台电脑直接安装Qt5.5,结果运行的时候同样的在main函数之前跳出来错误对话框如下图。


查了很多资料搞不清楚。请教是否有人遇到过类似情况?

7 个解决方案

#1


QT5里面删除了:QFtp、phonon、QGui(不再使用,改为QWidgets),并且QTextCodec不再使用在主函数里面。设置编码什么的一般与QString有关联,反正大变样。原来的代码如果有这些东西,那么就需要你添加执行条件了,if endif等等

#2


QT       += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
这些你在Qt5里面要加上

#3


引用 2 楼 u010111033 的回复:
QT       += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
这些你在Qt5里面要加上


引用 1 楼 u010111033 的回复:
QT5里面删除了:QFtp、phonon、QGui(不再使用,改为QWidgets),并且QTextCodec不再使用在主函数里面。设置编码什么的一般与QString有关联,反正大变样。原来的代码如果有这些东西,那么就需要你添加执行条件了,if endif等等


上述你说的,我刚刚检查了,除了QGui我替换成QWidget外,其他的地方我都没有用。刚刚发现,崩溃的时候报错的模块是QT5core.dll,所以我怀疑应该是在Qt4中可以使用到Qt5中没有的东西。但是编译不报错就很奇怪.

#4


上述你说的,我刚刚检查了,除了QGui我替换成QWidget外,其他的地方我都没有用。刚刚发现,崩溃的时候报错的模块是QT5core.dll,所以我怀疑应该是在Qt4中可以使用到Qt5中没有的东西。但是编译不报错就很奇怪.
如果库表面上没什么问题,我建议你查看pro文件。QT += core一定要加上,在pro文件里面逐个找找,做到完善

#5


我用Qt5新建一个工程,观察pro文件与你的Qt4里面的区别,按Qt5生成的pro文件改Qt4的pro再试试吧

#6


可以编译过,但运行不起来,一般都是库有问题,看看你那些库

#7


第一个图好像是动态库没有放对位置,程序执行找不到动态库.
第二个段错还是打断点调试吧

推荐阅读
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • 如何用JNI技术调用Java接口以及提高Java性能的详解
    本文介绍了如何使用JNI技术调用Java接口,并详细解析了如何通过JNI技术提高Java的性能。同时还讨论了JNI调用Java的private方法、Java开发中使用JNI技术的情况以及使用Java的JNI技术调用C++时的运行效率问题。文章还介绍了JNIEnv类型的使用方法,包括创建Java对象、调用Java对象的方法、获取Java对象的属性等操作。 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
author-avatar
范婷柏
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有