移植QT4.5 Segmentation Fault报错解决方法和字体偏小的办法

UOS-x86_64平台上运行通过linuxdeployqt发布的qt程序,直接报错:Segmentation fault`的一种可能的解决方案 【代码】UOS-x86_64平台上运行通过linuxdeployqt发布的qt程序,直接报错:Segmentation fault`的一种可能的解决方案。 阅读详情

移植QT4.5 Segmentation Fault报错解决方法和字体偏小的办法

我想大多数人都跟我一样直接用友善提供的arm-linu-gcc 4.3.2的版本来编译QT程序,所以遇到这个错误是必然的。

这个错误的原因主要是因为程序在编写的时候,指针的处理不当,而出现在移植QT身上,是因为交叉编译器,优化过度了,因此有两个解决办法。

办法1:安装 eabi的,版本为4.1.2 的交叉编译器

详细可以参考 http://www.qtcn.org/bbs/read.php?tid=22059

办法2:取消,交叉编译器的优化选项,去掉Makefile 的 -O2选项,不过程序会变得稍微大了,本人采用方法2,暂时没遇到什么特殊情况。(这是网上有人说可以,但我说了N次都不行,不知何因)
办法3: 最後找出原因是./cofigure 下達參數~所造成(必須要拿掉不必要的功能)~我不知道是哪個~這是參考人家的~提供給大家觀看 记得在做文件系统时要把最新的库文件加进去,我就是忘了这个,把以前的库加进去了,没及时替换掉,弄到凌晨三点也没搞出了,第二天早上刷牙时才想到库没及时替换了

 

所以在编译qt-embedded-linux-opensource-src-4.5.1是配置改为如下:

 

./configure -prefix /mini2440 -fast -no-largefile -no-qt3support -no-mmx -no-3dnow -no-xmlpatterns -no-webkit -no-svg -nomake demo -nomake docs -no-openssl -embedded arm -little-endian -no-qvfb -no-mouse-qvfb -depths 16 -confirm-license -xplatform qws/linux-arm-g++ -no-xcursor -no-xfixes -qt-mouse-tslib -I/home/tslib/include -L/home/tslib/lib

要是这样还不行的话,在这个基础上再用办法2试试

PS:对于QT4.5.1的移植字体,可能偏小,这是由于字体库的原因,QT本身不带汉字的字库,所以只能选择一个稍微好看的字库,在执行的时候,可以输入 ./hello -qws -fn SIMHEI &
【Qt问题】详解 SIGSEGV 段错误(Segmentation Fault)的信号 SIGSEGV 是一个表示段错误(Segmentation Fault)的信号,它通常表示程序试图访问无效的内存地址或者在访问内存时发生了错误。 阅读详情

相关推荐

CGAL-5.6的安装与编译(Win10+vs2022+CGAL-5.6+Boost1.82.0)

CGAL是Computational Geometry Algorithms Library(计算几何算法库)的缩写,C++的高效算法库。CGAL只是一个头文件库(从5.0版本开始),这意味着CGAL无需编译,只需安装好CGAL的依赖项即可。CGAL5.6。

baidu_34931359的博客 3902

QT SIGSEGV Segmentation fault

QT程序在运行时,出现崩溃。百思不得其姐,所以认真思考(上网百度)了一番,原来遇到此错误的不止我一人,故记录下来,以防下次再犯类似错误。

HelloKandy's Blog 3109

C语言实现定时任务

例:设置定时任务,每周周X的X时X分自动重启系统 思路:将设置好的重启时间保存到本地配置文件中,设置定时器定时一分钟,每一分钟信号触发一次事件,事件函数中获取配置文件信息与当前系统时间信息,将两个时间进行时间差计算,符合条件的自动重启系统. //创建定时器函数(通过信号触发事件timer_task函数启动) int create_timer() { struct sigevent evp; int ret = 0; memset(&evp, 0, sizeof(stru

佳佳鸽的博客 5036

编译qt/embedded应用程序时出现的segmentation fault 问题解决办法

这是上位机在编译Qt/embedded时arm-linux-gcc的版本没有选对,导致编译出来的库文件移植到开发板时与应用程序冲突,所以导致这样的问题;解决办法就是在编译Qt/embedded时用带有eabi的编译器arm-linux-gcc-4.1.2.或者用arm-linux-gcc4.4.3,我在ubuntu上用arm-linux-gcc-4.1.2出现了错误,编译不通过。改用arm-lin

missing01的专栏 1426

UG NX二次开发(C#)-建模-获取圆柱面信息(轴向、半径、深度)

获取圆柱面的信息前言一、在UG NX中面的类型有哪些?二、获取圆柱面信息的函数1.获取半径和轴向2、计算圆柱面的深度值3、测试用例总结 文章目录前言一、在UG NX中面的类型有哪些?二、获取圆柱面信息的函数1.获取半径和轴向2、计算圆柱面的深度值3、测试用例总结 前言 在一个项目中,需要遍历曲面,获得所有的圆柱面和圆柱面的信息,包括轴向、半径和圆柱面的深度。经过研究,采用uFModl.AskFaceData(face.Tag, out faceTypeInt, point, dir, box, out

GimiGimmy 4145

SAP-ABAP:新手入门篇——从0到1写出你的第一个ABAP Hello World程序并完成调试运行

本文是ABAP开发入门指南,详细介绍如何创建并运行第一个"Hello World"程序。主要内容包括:通过SE38事务码进入ABAP编辑器;创建以Z/Y开头的程序并保存为本地对象;编写简单的WRITE输出语句;完成语法检查、激活和执行流程;以及初步体验调试功能。文章特别强调ABAP开发的规范要求,如程序命名规则、激活与保存的区别等,并提供了详细的步骤说明和常见问题提示,帮助零基础开发者快速上手ABAP编程。

baidu_35680696的博客 479

Segmentation fault (core dumped)错误常见原因总结

1 问题原因 Segmentation fault (core dumped)多为内存不当操作造成。空指针、野指针的读写操作,数组越界访问,破坏常量等。对每个指针声明后进行初始化为NULL是避免这个问题的好办法。排除此问题的最好办法则是调试。 更为详细的原因: (1)内存访问越界 a) 由于使用错误的下标,导致数组访问越界 b) 搜索字符串时,依靠字符串结束符来判断字符串是否结束,但是字符串没有正常的使用结束符 c) 使用strcpy, strcat, sprintf, strcmp, strcasecmp

longteng_guo的博客 10万+

uniapp [安卓苹果App端] - 实现支付宝支付功能+拉起支付宝app付款支付后返回跳转到原页面,详解uniApp如何唤起本机支付宝并跳转到支付页面全流程及示例源码(APP端支付宝支付,支持打包

全网最详细的uniapp支付宝支付教程,uniapp支付宝支付流程,uni-app项目在APP端使用支付宝支付功能,uniapp前端实现支付宝支付,uniapp中唤醒支付宝进行支付并返回app,uniApp调起支付宝支付失败报错,uniapp app端调支付宝支付接口,uniapp开发安卓App对接支付宝支付,uniapp苹果ios唤起支付宝支付,uniapp调用支付宝支付uniapp开发app-调用支付宝支付,uniapp开发安卓苹果app如何接入支付宝支付,UniApp中实现支付宝支付功能,支付报错,调

🏆 前端领域优质创作者 1万+

mini2440开发板运行Qt程序出现Segmentation fault的另一种奇葩原因:Ubuntu下使用FileZilla通过FTP方式传输程序

使用QWT-6.1.2写了一个名为dataplot的小程序,Ubuntu下运行正常,遂交叉编译后传到开发板上,运行,报错:Segmentation fault。 主机环境:Ubuntu 12.04 + gcc 4.6.3 + Qt 4.8.1 开发环境:arm-linux-gcc 4.4.3 with EABI + QtE 4.6.3 (均为mini2440官方提供)  解决过程

lihui126的专栏 3440

FPGA DDR3实战(四):DDR地址映射自动化测试(1)—— 测试程序设计与代码逻辑

本文介绍了一种DDR地址映射自动化测试方案,旨在提高板卡调试效率。方案通过AXI4协议实现主从端通信,构建了包含地址控制器和测试数据生成器的模块化架构。测试程序支持突发传输、状态监控和错误检测,可灵活配置测试参数。采用状态机控制流程,先写入递增数据再读取比对,完成功能验证和性能评估。该方案可系统化验证DDR的正确性、稳定性和可靠性,相比传统手动测试显著提升效率。

FPGA_小田老师的博客 1977

设计四翼无人机(Quadcopter)的自主降落控制算法

为四翼无人机建立动力学模型,包括其姿态(Pitch, Roll, Yaw)和位置(X, Y, Z)的变化。可以使用Aerospace Blockset中的预制模块,或者根据具体需求构建自定义模型。示例:简化动力学模型利用块模拟四翼无人机的基本行为,确保模型能够反映电机输出如何影响姿态和位置变化。

amy_mhd的博客 242

龙芯2K1000LA平台QT交叉编译环境搭建与移植实战

交叉编译是嵌入式开发中的核心技术,它允许开发者在高性能主机上为资源受限的目标平台生成可执行代码。其核心原理是通过一套专用的工具链,将源代码编译成目标架构的二进制程序。这项技术对于在非主流架构(如龙芯的LoongArch)上移植成熟软件框架具有重要价值,能显著提升开发效率并确保性能。在嵌入式图形界面开发领域,QT框架因其丰富的组件和良好的可移植性而被广泛应用。本文聚焦于在龙芯2K1000LA处理器上,通过构建**交叉编译工具链**,并针对嵌入式环境进行**QT模块裁剪**,最终实现QT应用从x86主机到Loo

weixin_34406086的博客 391

threadX的USBX的初始化和解初始化的分析。

tx_application_define的最后会使用tx_byte_pool_create创建usb线程的内存空间“ux_device_app_byte_pool”,再创建usb线程,也就是执行。主要就是创建了线程,也就是第3个参数app_ux_device_thread_entry,这个参数内是MX_USB_Device_Init,也就是USB底层初始化。进来的参数只有1个,是memory_ptr,这个就是创建的usb线程空间“ux_device_app_byte_pool”

qq_31885403的博客 647

Dev-C++ 2026年仍适合C语言入门的三大原因

C语言入门环境配置是初学者面临的第一道技术门槛,其本质是编译器、编码标准与运行时终端三者协同问题。Dev-C++作为轻量级MinGW前端,通过零配置封装、内置GBK兼容链路和静态链接能力,将复杂工具链抽象为‘安装即用’体验,显著降低认知负荷。它不追求C++20等前沿特性,而是精准匹配零基础学习者对确定性反馈(如3分钟Hello World)和教学场景鲁棒性的核心需求。在VS Code配置繁杂、中文乱码频发、运行库缺失等高频痛点持续存在的当下,Dev-C++凭借GB2312编码支持、-finput-chars

weixin_34060741的博客 436

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Qt编程 segmentation fault (段错误)解决思路

下面错误显示应该是很多程序员编程时都会遇见类似的问题吧。程序执行过程中,就异常退出显示如下类似的代码: pure virtual method called terminate called without an active exception 相信很多初学者绞尽脑汁都找不出代码问题的所在处,要么百度、要么寻求大佬帮助。遇到此问题时,一定不要慌 ,要冷静,仔细的去检查代码。代码是自己编写的...

Tjmies的博客 2万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Qt调试错误:QT SIGSEGV Segmentation fault

我的情况是,我自定义了一个控件类,然后定义了一些成员变量并且没有初始化。程序运行自动调用了控件类,这意味着这些成员变量的值取决于内存中的随机数据或者是未经初始化的内存。昨天代码运行时程序就崩溃了,但是我并没有做什么修改,而且程序是偶尔崩溃偶尔正常,这就很难绷了。直接说解决方法吧,大部分情况下可能是定义了指针没有new就调用了。把这些成员变量初始化或者直接删掉就可以了。

wrgwrgfw的博客 1642

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Qt调试错误:The inferior stopped because it received a signal from the Operating System.SIGSEGV

现象: 调试时弹窗: Signal received The inferior stopped because it received a signal from the Operating System. Signal name : SIGSEGV Signal meaning : Segmentation fault 底层停止因为从操作系统接收到了一个信号 信号名: 分析: 可能的原因: 1、定义了指针,没有new直接调用。 2、定义的指针通过函数赋值不成功,然后没有判断就直接使用。 3、数组下标越界。

潮湿的桥 1万+

关于QT显示SIGSEGV报错的解决方法

最近在Linux下用QT进行界面编程时,遇到了诡异的SIGSEGV问题。经过2天各种搜索查询摸爬滚打,终于不小心碰到了解决方法。 正文: 这几天在Deepin系统上编写程序,采用了QT,写的是UI界面程序(Qt Widgets Application),在写一个新窗口(父类为QDialog)类的时候,遇到了SIGSEGV错误: The inferior stopped because it received a signal from the operating system. Signal name:SI

qq_32290055的博客 1万+

Qt: Segmentation fault

原文地址:Segmentation fault">Qt: Segmentation fault作者:geniustuo在micro2440开发板上运行Qt程序时,有时会发生Segmentation fault错误。原因有两个,一是在编译开发板上的Qt库时所用arm-linux-gcc和编译Qt程序所用的arm-linux-gcc的版本不同(我想很多人的虚拟机上arm-linux-gcc应该都不止一

少波波波波少 1564

编译报错 internal compiler error: Segmentation fault 解决方法

编译报错 internal compiler error: Segmentation fault 解决方法

坚韧与专注 1万+

“Segmentation fault“(分段错误)

"Segmentation fault"错误通常是由于程序中的一些逻辑或者内存管理问题导致的,找到并修复这些问题将解决这个错误。“Segmentation fault”(分段错误)是一种常见的错误,通常是在程序试图访问无效的内存地址或未初始化的内存区域时发生的。:确保数组访问不越界。:在使用指针之前,要确保指针不为空(null),否则试图在空指针上执行操作会导致"Segmentation fault"。:可以使用调试工具(如GDB)来跟踪程序的执行过程,定位错误发生的位置,以便更好地进行调试和排查问题。

qq_51771954的博客 2万+

qt提示segmentation fault 段错误

一般这种情况在调试的时候可以查看自己代码是不是有野指针问题、访问越界、栈溢出或修改了只读的内存、多线程操作错误这几种情况。一般出现最多是野指针和访问越界,在调试的时候带着这几种情况去找问题的话很容易找到。

vvddrr的博客 957

qt移植出现Segmentation fault

参照 http://www.arm9home.net/simple/index.php?t2993.html 程序 qt-embedded-linux-opensource-src-4.5.0/src/gui/embedded/qscreenlinuxfb_qws.cpp 作如下修改: 410行: /*            //EmbedSky_del start 200912

zm_nong的专栏 3274
上一篇: Qt-embedded-linux-opensource-src-4.5.1移植到mini2440
下一篇: 在ubuntu下安装arm920t-eabi-4.1.2
辉捺天韵
博客等级 码龄15年 2粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值