linux (ubuntu环境)下发布QT程序到非开发机器
1、ldd 查看动态库缺失
首先,保证在开发机器上通过 QTCreator 能构建出项目并能运行成功。
在 windows 平台下,我们使用 windeployqt 去拷贝动态库,而在 linux 下,也有对应的命令是 ldd 。来到 release文件夹下,使用 ldd VPlayer 命令查看 VPlayer(暂且称我们的程序名为 VPlayer)的动态库链接情况,假如我们看到下面这种情况,有的库 not found:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VqqvSjdl-1608357921889)(https://s2.ax1x.com/2019/04/03/AcNMSs.png)]
首先,在红框下方,可以看到一些依赖库指向了 ubuntu 系统目录 usr/lib ,一种原因是这些库是系统自带库,一种原因是 apt-get 的默认安装路径的 lib 库就在 usr/lib 下,这个时候启动 VPlayer ,系统会自动去这个目录下搜索动态依赖库。因此我们要做的就是把我们的动态库路径(即为 release 下 bin 目录)告诉系统,让启动 VPlayer 时去我们指定的目录下搜索依赖库。
2、添加动态库搜索路径
把我们的release添加进系统的搜索路径常见的有3种方式:
- 添加 VPlayer 目录到系统共享库搜索路径:进入 etc/ld.so.conf.d 目录,使用命令 sudo touch