首页| 论坛| 消息

标题:求助:ubuntu 18.10上编译好的程序,打包到另外一台linux虚拟机上不能运行
作者:蓝色永恒
日期:2020-02-12 16:28
内容:

编译环境:虚拟机 ubuntu 18 桌面版QT 5.12.3,编译后的程序长时间运行没问题。
打包移植用了两种方式:
1. Linuxdeployqt : git克隆源代码下来,注释掉判断版本的几行,编译成功。 运行 LinuxDeployqt myapp -appimage , 能生成, 本机运行正常, 压缩打包拷贝到另外一台 虚拟机(ubuntu 16服务器版)上运行, 报 段错误(Segmentation fault )。
这个方法是参照的这个网页:https://www.cnblogs.com/xl2432/p/11124415.html
2. 百度到自己找依赖库的方法ldd myapp, 把缺失的so文件都找到,本机运行正常, 压缩打包拷贝到另外一台 虚拟机(ubuntu 16服务器版)上运行, 依然报段错误(Segmentation fault ),这个方法参照:https://www.jianshu.com/p/9df72f8b2004
真不知道问题出在哪里, 有大家帮帮忙。


#1 [fsu0413 02-14 08:36]
Linux下最好使用软件源提供的Qt进行编译,并使用软件源提供的方法进行打包
如果实在要做universal linux版本的话,用CentOS7
如果CentOS7也用不了的话,使用你认为可以使用的最老的Linux发行版

原因是如果你使用的版本太高很可能在编译时引入一些不能向前兼容的代码
CentOS7是2013年发布的,里面的软件版本都很老。
大多数软件都可以向后兼容,不能向前兼容,所以用CentOS7可能是最优解
#2 [圣域天子 02-14 10:31]
我一直是确保正式运行的linux和编译的linux是完全相同的版本。
所以这个问题几乎没有出现过。
#3 回 圣域天子 的帖子 [蓝色永恒 02-16 07:54]
圣域天子:我一直是确保正式运行的linux和编译的linux是完全相同的版本。
所以这个问题几乎没有出现过。 (2020-02-14 10:31) 
是个办法,值得一试,谢谢
#4 回 蓝色永恒 的帖子 [fsu0413 02-16 09:51]
蓝色永恒:是个办法,值得一试,谢谢 (2020-02-16 07:54) 
如果只是内部开发内部使用的话,没问题
如果要发布给外部使用的话呢?
#5 回 fsu0413 的帖子 [圣域天子 02-17 10:20]
fsu0413:如果只是内部开发内部使用的话,没问题
如果要发布给外部使用的话呢? (2020-02-16 09:51) 
那你最好在所有外部的版本上做一下测试,我以前也曾进行过这样的对比。
虽然费时费力,但是还是能找到原因和解决方案的

<< 1 2 >> (1/2)

回复 发表
主题 版块