Qt打包生成可执行程序

 一,为什么QT要打包和部署?
因为我们要把写好的程序发给用户来用,我们写好的源码也不是随便给别人的。
二,QT如何打包和部署?
1.我们把工厂切换到release模式,然后编译。
release模式:基本没有调试信息。
debug模式:有很多调试信息。
2.找到release模式构建的文件夹。
3.改一下图标。先把图标加到工程所在文件夹。然后在pro文件里面添加
RC_ICONS=serial_iocn.ico
  注意:图标的格式必须为.ico这个格式的,其他格式不行。
4.封包操作,需要用到QT的控制台,接下来,我们需要电脑桌面上创建一个新的文件夹,注意千万不要有中文路径。然后把exe文件拷贝到我们新创建的文件夹里面,如下:

在QT控制台里面。我们使用命令进到我们新创建的文件夹所在的路径,命令如下。

最后一步,我们使用windeployqt工具把库加到我们新创建的这个文件夹里面。如下:
格式:windeployqt exe文件的名称

 

三,QT5.14封装成可执行程序,运行qt的终端:

进入deploy.bat所在的路径,

然后把deploy.bat拖进去回车就可以

新建deploy.bat

rmdir  /S /Q  Deploy
mkdir Deploy
xcopy /E Release64\Windows\*     Deploy\
windeployqt --qmldir  qml    Deploy\yourTest.exe

四,QT5.8生成可执行程序

1,在Qt Creator下用release跑一遍程序,生成相应的EXE文件

2,在Qt Creator下编译好的release下的 youProgramName.exe 拷贝到一个文件夹下面;

3,打开Qt命令行,也就是Qt5.8 64-bit for desktop(MSVC 2015),然后进入你拷贝EXE文件的文件夹下; 如:cd /d D:\drinkWater,接着运行 windeployqt youProgramName.exe,然后文件夹下就会出现所有依赖。

五,zynq 使用2022.2移植QT的修改

build.sh

#!/bin/sh
source /home/zynq/petalinux/settings.sh
SDK_PATH=/tools/Xilinx/Vitis/2022.2
if [ ! -d $SDK_PATH ]; then
  echo "no dir ${SDK_PATH}"
  exit 1
fi
source ${SDK_PATH}/settings64.sh
export ZYNQ_QT_INSTALL=/opt/alinx/zynq_qt5.7.1 
#export PKG_CONFIG_LIBDIR=${SDK_PATH}/gnu/aarch32/lin/gcc-arm-linux-gnueabi/arm-linux-gnueabihf/lib
export PKG_CONFIG_LIBDIR=${SDK_PATH}/gnu/aarch32/lin/gcc-arm-linux-gnueabi/cortexa9t2hf-neon-xilinx-linux-gnueabi/lib
export CROSS_COMPILE=arm-linux-gnueabihf-

if [ ! -d $PKG_CONFIG_LIBDIR ]; then
  echo "no ${PKG_CONFIG_LIBDIR}"
  exit 1
fi

Cur_Dir=$(pwd)
QT_SORCE=qt-everywhere-opensource-src-5.7.1
echo $Cur_Dir
export ZYNQ_QT_BUILD=$Cur_Dir
export PATH=$ZYNQ_QT_INSTALL/bin:$PATH
cd $QT_SORCE
./configure -xplatform arm-linux-gnueabihf-g++ \
    -opensource \
    -confirm-license \
    -skip qtquickcontrols \
    -skip qtwebchannel \
    -skip qtactiveqt \
    -skip qtandroidextras \
    -skip qtdeclarative \
    -skip qtimageformats \
    -skip qtmacextras \
    -skip qtserialport \
    -skip qtx11extras \
    -skip qtxmlpatterns \
    -skip qtconnectivity \
    -skip qtdoc \
    -skip qtgraphicaleffects \
    -skip qtlocation \
    -skip qtmultimedia \
    -skip qtsensors \
    -skip qttools \
    -skip qttranslations \
    -skip qtwayland \
    -skip qtwebchannel \
    -skip qtwebengine \
    -skip qtwebsockets \
    -skip qtwinextras \
    -verbose \
    -no-gif \
    -no-libjpeg \
    -no-mtdev \
    -no-sql-db2 \
    -no-sql-ibase \
    -no-sql-mysql \
    -no-xcb \
    -qt-freetype \
    -fontconfig \
    -no-harfbuzz \
    -no-xinput2 \
    -no-xcb-xlib \
    -no-pulseaudio \
    -no-alsa \
    -no-cups \
    -no-iconv \
    -no-icu \
    -no-eglfs \
    -no-openssl \
    -no-dbus \
    -prefix $ZYNQ_QT_INSTALL
make -j4
sudo make install
sudo cp $Cur_Dir/qt_env_set.sh  $ZYNQ_QT_INSTALL/qt_env_set.sh

make_image.sh

#!/bin/sh
export ZYNQ_QT_INSTALL=/opt/alinx/zynq_qt5.7.1 
#export PKG_CONFIG_LIBDIR=/opt/Xilinx/SDK/2017.4/gnu/aarch32/lin/gcc-arm-linux-gnueabi/arm-linux-gnueabihf/lib
export PKG_CONFIG_LIBDIR=/tools/Xilinx/Vitis/2022.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/cortexa9t2hf-neon-xilinx-linux-gnueabi/lib
if [ ! -d $ZYNQ_QT_INSTALL ]; then
  echo "no ${ZYNQ_QT_INSTALL}"
  exit 1
fi
if [ ! -d $PKG_CONFIG_LIBDIR ]; then
  echo "no ${PKG_CONFIG_LIBDIR}"
  exit 1
fi
Cur_Dir=$(pwd)
LIBS_NAME=zynq_qt_lib
mkdir $LIBS_NAME
sudo cp $ZYNQ_QT_INSTALL/lib/*.so* $Cur_Dir/$LIBS_NAME
sudo cp -R $ZYNQ_QT_INSTALL/plugins $Cur_Dir/$LIBS_NAME

sudo cp $PKG_CONFIG_LIBDIR/libstdc++.so* $Cur_Dir/$LIBS_NAME
sudo cp $PKG_CONFIG_LIBDIR/* $Cur_Dir/$LIBS_NAME

cp -R fonts $Cur_Dir/$LIBS_NAME
cp $Cur_Dir/qt_env_set.sh $Cur_Dir/$LIBS_NAME
sudo chmod 777 $Cur_Dir/$LIBS_NAME -R
sudo dd if=/dev/zero of=qt_lib.img bs=1M count=400
sudo mkfs.ext4 -F qt_lib.img
sudo chmod go+w qt_lib.img
sudo mount qt_lib.img -o loop /mnt
sudo cp -rf $Cur_Dir/$LIBS_NAME/* /mnt
sudo chmod go-w qt_lib.img
sudo umount /mnt

源自于编译启动文件时候产生的

把下面这些复制过去,因为缺少这些库

修改前

复制进去以后 sudo cp $PKG_CONFIG_LIBDIR/* $Cur_Dir/$LIBS_NAME

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
QT项目打包可执行程序可以提高程序的可移植性和分发性。下面是一种将QT项目打包可执行程序的方法: 1. 打开QT Creator,并加载项目。确保项目能够功构建和运行。 2. 在QT Creator的"构建"菜单中选择"发布"。 3. 在"发布"窗口中,选择适合你的平台的"版本"和"构建配置"。如果你想发布给其他用户使用,建议选择发布稳定版本。 4. 点击"下一步",选择你想要生成的目标文件夹。这是你打包后的可执行程序将存储的位置。 5. 点击"下一步",选择你想要包含在可执行程序中的文件。你可以选择需要的文件、文件夹、依赖库和其他资源。确保包含了所有必要的文件。 6. 点击"下一步",选择程序要安装到的目标位置。这是可执行文件安装后将存储的位置。 7. 点击"下一步",选择生成程序快捷方式的位置。这里你可以选择是否生成桌面快捷方式和启动菜单快捷方式。 8. 点击"下一步",选择要使用的发布工具。你可以选择直接复制文件夹或使用安装程序,根据你的需求进行选择。 9. 点击"下一步",查看总结信息,确保所有设置正确无误。 10. 点击"构建"按钮进行打包QT Creator将开始打包你的项目,并在目标文件夹中生成可执行程序。 11. 打包后,你可以在目标文件夹中找到生成可执行程序。你可以将该文件夹复制到其他机器上,并运行其中的可执行程序。 通过以上步骤,你可以将QT项目打包可执行程序,方便分发并在其他机器上运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

寒听雪落

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值