查看完整版本: [-- 求助:ubuntu 18.10上编译好的程序,打包到另外一台linux虚拟机上不能运行 --]

QTCN开发网 -> Qt安装与发布 -> 求助:ubuntu 18.10上编译好的程序,打包到另外一台linux虚拟机上不能运行 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

蓝色永恒 2020-02-12 16:28

求助:ubuntu 18.10上编译好的程序,打包到另外一台linux虚拟机上不能运行


编译环境:虚拟机 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
真不知道问题出在哪里, 有大家帮帮忙。

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

原因是如果你使用的版本太高很可能在编译时引入一些不能向前兼容的代码
CentOS7是2013年发布的,里面的软件版本都很老。
大多数软件都可以向后兼容,不能向前兼容,所以用CentOS7可能是最优解


圣域天子 2020-02-14 10:31
我一直是确保正式运行的linux和编译的linux是完全相同的版本。
所以这个问题几乎没有出现过。

蓝色永恒 2020-02-16 07:54
圣域天子:我一直是确保正式运行的linux和编译的linux是完全相同的版本。
所以这个问题几乎没有出现过。 (2020-02-14 10:31) 

是个办法,值得一试,谢谢

fsu0413 2020-02-16 09:51
蓝色永恒:是个办法,值得一试,谢谢 (2020-02-16 07:54) 

如果只是内部开发内部使用的话,没问题
如果要发布给外部使用的话呢?

圣域天子 2020-02-17 10:20
fsu0413:如果只是内部开发内部使用的话,没问题
如果要发布给外部使用的话呢? (2020-02-16 09:51) 

那你最好在所有外部的版本上做一下测试,我以前也曾进行过这样的对比。
虽然费时费力,但是还是能找到原因和解决方案的

fsu0413 2020-02-17 20:32
圣域天子:那你最好在所有外部的版本上做一下测试,我以前也曾进行过这样的对比。
虽然费时费力,但是还是能找到原因和解决方案的 (2020-02-17 10:20) 

但是问题是Linux发行版那么多,不可能每一个都测试的到

zh21107066 2022-08-24 12:21
你好,楼主问题解决了吗,我也遇到这个问题。
在ubuntu18.06上打包的,用linuxdeployqt的,发现在另一台18.06上正常,在另一台18.05或16.04都不行

fsu0413 2022-08-24 21:40
zh21107066:你好,楼主问题解决了吗,我也遇到这个问题。
在ubuntu18.06上打包的,用linuxdeployqt的,发现在另一台18.06上正常,在另一台18.05或16.04都不行 (2022-08-24 12:21) 

18.06是什么
你要支持16.04就要用16.04

tonyzhou1985 2022-08-25 13:36
zh21107066:你好,楼主问题解决了吗,我也遇到这个问题。
在ubuntu18.06上打包的,用linuxdeployqt的,发现在另一台18.06上正常,在另一台18.05或16.04都不行 (2022-08-24 12:21) 

要确保编译程序用的gcc版本不高于运行环境的gcc版本就行。如果还存在问题,那就是依赖库的问题,这些都要解决


查看完整版本: [-- 求助:ubuntu 18.10上编译好的程序,打包到另外一台linux虚拟机上不能运行 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled