beipiaoyizu beipiaoyizu
关注数: 0 粉丝数: 3 发帖数: 703 关注贴吧数: 12
求助万能的吧友,求解龙芯下运行程序出现“总线错误”的问题! 环境:CPU:龙芯3A6000;系统:UOS1070或KYLIN2303; 事件详情:手动编译并安装QT5.5,然后编译自己的程序,程序直接运行正常。然后用linuxdeployqt发布编译的程序,发布过程中linuxdeployqt修改了libQT5Core.so.5的rpath信息。结果程序启动运行时报“总线错误 (核心已转储)”,启动运行失败。 结论:编译后的程序及库文件,不做任何修改运行正常。如果想脱离运行环境,发布程序时,有任何更改库文件的行为,就会出现总线错误。 个人推断:可能linuxdeployqt在修改了libQT5Core.so.5的rpath信息后,破坏了原始文件的内存对齐,引起“总线错误”。 个人尝试:使用patchelf工具进行4K内存对齐,无效。 备注:linuxdeployqt修改libQT5Core.so.5的rpath信息,是为了实现: 将原库文件指向 libicui18n.so.63 => /lib/loongarch64-linux-gnu/libicui18n.so.63 libicuuc.so.63 => /lib/loongarch64-linux-gnu/libicuuc.so.63 libicudata.so.63 => /lib/loongarch64-linux-gnu/libicudata.so.63 修改为: libicui18n.so.63 => 程序所在目录 ./lib/libicui18n.so.63 libicuuc.so.63 => 程序所在目录 ./lib/libicuuc.so.63 libicudata.so.63 => 程序所在目录 ./lib/libicudata.so.63 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 求助解决问题的方法,或如何在编译libQT5Core.so.5库文件时提前修改rpath等。。。
1 下一页