QT ubuntu打包deb包

目录

安装打包软件

编译patchelf

安装AppImageKit

配置环境变量

打包程序

打包文件结构

DEBIAN中的文件

实际安装目录

执行打包命令

dpkg 命令


安装打包软件

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

cd linuxdeployqt
  • 编辑tools/linuxdeployqt/main.cpp文件,注释掉版本判断:

  • 在linuxdeployqt目录下执行:
qmake
make -j
sudo make install
cd bin
sudo chmod a+x linuxdeployqt
sudo cp linuxdeployqt /usr/local/bin
  •  安装完成后使用 linuxdeployqt -v  查看

编译patchelf

git clone https://github.com/NixOS/patchelf.git
cd patchelf
./bootstrap.sh
./configure
make -j
make check
sudo make install
  • 如果出现
    • autoreconf: not found
  • 安装:
sudo apt-get install autoconf automake libtool
sudo apt-get install libffi-dev

安装AppImageKit

  •  依次执行命令:
cp appimagetool-x86_64.AppImage appimagetool
sudo chmod a+x appimagetool
sudo mv appimagetool /usr/local/bin

配置环境变量

  • 打开 ~/.bashrc,根据安装的QT目录进行添加,添加完后执行  source ~/.bashrc

export PATH=/home/ubuntu/Qt/5.15.2/gcc_64/bin::$PATH
export LD_LIBRARY_PATH=/home/ubuntu/Qt/5.15.2/gcc_64/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=/home/ubuntu/Qt/5.15.2/gcc_64/plugins:$QT_PLUGIN_PATH
export QML2_IMPORT_PATH=/home/ubuntu/Qt/5.15.2/gcc_64/qml:$QML2_IMPORT_PATH

打包程序

  • 新建文件夹 build,将编译好的程序拷贝到该文件夹下,然后在程序的目录中执行
linuxdeployqt  [APP_NAME] -appimage

  • 执行命令后得到:

打包文件结构

  • 文件结构

DEBIAN中的文件

  • 其中DEBIAN  control文件:
package: ToolChain
Version: 0.0.2
Section: utils
Priority: optional
Architecture: amd64
Depends:
Installed-Size: 4096
Maintainer: gqzd
Description: ToolChain-deb

------- 以下为注释部分,执行时,请将从这一行开始的所有内容删除  --------
package 表示安装包的名字 
version 表示次安装包的版本
architecture 当前系统的架构的信息
maintainer 此安装包的维护者
description 此安装包的描述
  • postinst
#!/bin/bash
cp  /usr/local/toolchain/bin/ToolChain.desktop   /home/${SUDO_USER}/桌面/
chmod +x    /home/${SUDO_USER}/桌面/ToolChain.desktop
sudo ldconfig -v
  • prerm
#!/bin/bash
filename=/home/${SUDO_USER}/桌面/ToolChain.desktop
if [ -f ${filename} ]
then
    rm ${filename}
fi
exit 0
  • 赋予权限
sudo  chmod  0775  postinst
sudo  chmod  0775  prerm

etc中的文件

/usr/local/toolchain/lib
  • 安装完后,会在/etc/ld.so.conf.d 文件夹下生成该文件。

实际安装目录

  • 假如我们希望最终安装的文件在 /usr/local下,那么我们就在DEBIAN同级目录下创建 /usr/local 目录,然后将我们的程序目录放在这个文件下面即可。
  • 说明:程序的快捷方式文件
[Desktop Entry]
Version=0.0.2
Name=ToolChain
Comment= xxxxxxx
Exec=/usr/local/toolchain/bin/app     //安装后的绝对路径
Icon=/usr/local/toolchain/bin/app.ico //安装后的绝对路径
Terminal=false  
Type=Application
Categories=Utility;Application;

执行打包命令

  • 在DEBIAN上一级目录进行打包:
dpkg -b . /home/ubuntu/code/qtcode/build/debpkg/ToolChainApp-x64-0.0.2_i386.deb
  • 带qml打包:
linuxdeployqt  AppName  -appimage -qmldir=/home/ubuntu/code/xxx/code/qml
  • 查看生成后的打包文件:

dpkg 命令

  • 安装:
sudo dpkg  -i ToolChainApp-x64-0.0.2_i386.deb
  • 卸载:
sudo dpkg  -r ToolChain
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 安装Qt 首先需要安装Qt,可以通过以下命令进行安装: ``` sudo apt-get install qt5-default ``` 2. 编写Qt程序 编写Qt程序并进行编译,生成可执行文件。 3. 创建Debian目录结构 在程序的根目录下创建一个名为`debian`的目录,该目录中需要含以下文件: - control:描述软件的元数据,括软件名称、版本、依赖关系等信息。 - changelog:软件的更改日志。 - rules:打包软件的规则。 - compat:指定打包软件所使用的debhelper版本。 可以通过以下命令创建Debian目录结构: ``` dh_make --createorig ``` 4. 编辑control文件 编辑`debian/control`文件,需要含以下内容: ``` Source: package-name Section: devel Priority: optional Maintainer: Your Name <[email protected]> Build-Depends: debhelper (>= 9), qt5-default Standards-Version: 3.9.3 Package: package-name Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: Description of package-name ``` 其中,`package-name`需要替换为软件的名称,`Maintainer`需要替换为你的名字和邮箱地址,`Description`需要替换为软件的描述。 5. 编辑changelog文件 编辑`debian/changelog`文件,需要含以下内容: ``` package-name (version) distribution; urgency=low * Initial release. -- Your Name <[email protected]> Wed, 01 Jan 2020 00:00:00 +0800 ``` 其中,`package-name`需要替换为软件的名称,`version`需要替换为软件的版本号,`distribution`需要替换为Linux发行版的名称,`Your Name`和`[email protected]`需要替换为你的名字和邮箱地址。 6. 编辑rules文件 编辑`debian/rules`文件,需要含以下内容: ``` #!/usr/bin/make -f %: dh $@ ``` 7. 编辑compat文件 编辑`debian/compat`文件,需要含以下内容: ``` 9 ``` 8. 打包程序 在程序的根目录下运行以下命令进行打包: ``` debuild -us -uc ``` 该命令将在当前目录下生成一个`.deb`文件,即为打包好的软件。 至此,将Qt程序打包deb的步骤就完成了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值