Ubuntu22.04下打包发布Qt5.15应用程序的方法

Qt应用编译时选择release方式编译

目的:debug方式编译依赖的文件会多一些,同时文件大小还会很大。

Notice: 所有操作都是在当前用户下,如果是root账户,需要注意加上sudo,否则会因为权限问题提取依赖文件失败。

准备

  • 在Ubuntu当前用户目录下创建一个目录
gary@gary-host:~$ mkdir QtAppDeploy
  • 创建脚本ldd_copy.sh,用于拷贝应用的关联文件
#!/bin/sh 
exe="yourdemoname" #你需要发布的程序名称 
des="/home/gary/QtAppDeploy" #创建文件夹的位置 
deplist=$(ldd $exe | awk  '{if (match($3,"/")){ printf("%s "),$3 } }') 
cp $deplist $des
  • 创建运行脚本yourdemoname.sh,最终用来运行你的应用程序
#!/bin/sh 
appname=`basename $0 | sed s,\.sh$,,` 
dirname=`dirname $0` 
tmp="${dirname#?}" 
if [ "${dirname%$tmp}" != "/" ]; then 
dirname=$PWD/$dirname 
fi 
LD_LIBRARY_PATH=$dirname 
export LD_LIBRARY_PATH 
$dirname/$appname "$@"
  • 修改脚本权限为可执行
chmod +x ldd_copy.sh 
chmod +x yourdemoname.sh

### 在aarch64架构的Ubuntu 22.04系统上安装Qt框架 在aarch64架构的Ubuntu 22.04系统上安装Qt框架,可以通过以下方法实现。以下是详细的说明和步骤: #### 方法一:通过在线安装程序安装Qt 可以使用官方提供的在线安装程序来安装Qt框架。此方法适用于需要最新版本或特定版本的Qt用户。 1. 下载Qt在线安装程序: ```bash wget https://download.qt.io/official_releases/online_installers/qt-online-installer-linux-x64-online.run ``` 此命令将下载最新的Qt在线安装程序[^2]。 2. 赋予脚本可执行权限并运行安装程序: ```bash chmod +x qt-online-installer-linux-x64-online.run ./qt-online-installer-linux-x64-online.run ``` 3. 按照安装向导完成安装。可以选择安装的Qt版本、模块以及目标路径。 #### 方法二:编译安装Qt 如果需要为特定硬件(如Jetson NX)或特定需求(如交叉编译环境)定制Qt框架,可以手动编译安装Qt。 1. **准备交叉编译工具链** 首先需要一个支持aarch64架构的交叉编译工具链。例如,可以使用官方提供的工具链: ```bash curl -fO https://archive.d-robotics.cc/toolchain/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu.tar.xz tar xf gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu.tar.xz export PATH=$PATH:/path/to/toolchain/bin ``` 2. **配置环境变量** 将交叉编译工具链添加到全局路径中,并确保其可用性: ```bash echo "export PATH=$PATH:~/qt5.15.15/aarch64--glibc--stable-2022.08-1/bin" >> ~/.bashrc source ~/.bashrc ``` 3. **下载Qt源码** 从Qt官方网站下载所需的源码包(例如Qt 5.15.15): ```bash wget https://download.qt.io/archive/qt/5.15/5.15.15/single/qt-everywhere-src-5.15.15.tar.xz tar xf qt-everywhere-src-5.15.15.tar.xz cd qt-everywhere-src-5.15.15 ``` 4. **配置编译选项** 使用`configure`脚本配置编译选项。以下是一个示例配置命令: ```bash ../qt-everywhere-src-5.15.15/configure -release -opengl es2 \ -device linux-jetson-nx \ -device-option CROSS_COMPILE=aarch64-linux- \ -sysroot $HOME/qt5.15.15/sysroot \ -prefix /usr/local/qt5 \ -opensource -confirm-license \ -skip qtscript \ -skip wayland \ -skip qtwebengine \ -force-debug-info -skip qtlocation \ -nomake examples \ -nomake tests \ -make libs \ -pkg-config -no-use-gold-linker -v ``` 此命令指定了目标设备、交叉编译器、系统根目录以及其他编译选项[^3]。 5. **编译与安装** 执行以下命令进行编译和安装: ```bash make -j$(nproc) make install ``` #### 方法三:直接安装预编译的Qt包 对于某些情况,可以直接安装预编译的Qt包。这通常适用于不需要自定义配置的场景。 1. 更新系统包索引: ```bash sudo apt update ``` 2. 安装Qt相关包: ```bash sudo apt install qt5-default qtcreator ``` 此方法会安装默认的Qt开发环境及其相关工具[^1]。 --- ### 注意事项 - 如果需要支持ROS2或其他框架,请确保系统的依赖项已正确安装[^4]。 - 在编译过程中可能会遇到问题,例如缺少依赖项或配置错误。可以参考相关文档或社区支持解决这些问题。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JXES智能生态系统

如文章对你有用,请作者喝个咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值