编辑
2025-03-03
记录知识
0
请注意,本文编写于 116 天前,最后修改于 59 天前,其中某些信息可能已经过时。

目录

一、工具简介
二、linuxdeployqt 源码下载与编译
2.1 源码下载地址 :
2.3 安装patchelf
2.4 源码编译:
2.5 工具的使用:
三、制作成deb包

一、工具简介

Qt 提供了一个打包工具,叫做 deployqt,可以将应用程序所依赖的库文件都提取出来。在 Windows 系统叫 windeployqt,在 Linux 系统叫 linuxdeployqt,在 Mac 下叫 macdeployqt。

二、linuxdeployqt 源码下载与编译

2.1 源码下载地址 :

git clone https://github.com/probonopd/linuxdeployqt.git

2.2 Qt环境:

本工程在172.25.130.130服务器chroot环境下,Qt环境是配好的,因此这里不需要配置Qt的环境变量。

image.png

2.3 安装patchelf

sudo apt install patchelf

该工具的作用:patchelf是一个用于修改ELF(可执行和链接格式)二进制文件的工具。它可以更改二进制文件中的符号表、动态段、程序头等部分,以便在运行时重新定位或修改它们。这对于动态库加载、插件系统和其他需要自定义运行时行为的场景非常有用。

工程中使用如下:

image.png

2.4 源码编译:

linuxdeployqt/main.cpp 去掉glibc判断

image.png

  • linuxdeployqt/share.cpp中修改变量copyCopyrightFiles 默认值为false
  • bool copyCopyrightFiles = false;//不拷贝版权文件

进入工程目录下:

image.png

因为这是qt工程,我们可以qmake 生成makefile 文件 ,再make编译(网上有使用cmake教程,其实大可不必)

编译有报错:

image.png

可以把这些打印全注掉,make clean&& make。

编译完成,把这个可执行文件扔进/usr/local/bin目录,这样,我们就可以在其他目录访问了。

通过命令查看可执行程序的信息:

image.png

2.5 工具的使用:

在需要打包的文件夹下执行 linuxdeployqt xxx(应用程序名)-bundle-non-qt-libs即可。

三、制作成deb包

这里可以参考新人文档如何使用编译deb包。