精华内容
下载资源
问答
  • 1、新建脚本文件pack.sh SensorMaster.sh ...exe="SensorMaster" #你需要发布的程序名称 des="/home/jianwang16/SensorMaster_Proj/build-SensorMaster-Desktop_Qt_5_9_0_GCC_64bit-Release/SensorMaster_Pack...

    1、新建脚本文件pack.sh SensorMaster.sh

    (1)pack.sh

    #!/bin/sh  
    exe="SensorMaster" #你需要发布的程序名称
    des="/home/jianwang16/SensorMaster_Proj/build-SensorMaster-Desktop_Qt_5_9_0_GCC_64bit-Release/SensorMaster_Pack/install-pack " #创建文件夹的位置
    deplist=$(ldd $exe | awk  '{if (match($3,"/")){ printf("%s "),$3 } }')  
    cp $deplist $des

    (2)SensorMaster.sh

    SensorMaster.sh 的名称应该和Release版本编译发布的文件相同,在此处我的文件名称是SensorsMaster

    #!/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 "$@"

    2、给文件赋权限

    sudo chmod a+x pack.sh SensorMaster.sh

    3、执行pack.sh

    ./pack.sh

    4、可以在输出文件夹中看到已经生成的.so库文件。

    5、参考

    https://blog.csdn.net/qq_27350133/article/details/83445258

    展开全文
  • 1、QT切换到release模式,编译后在构建目录生成可执行文件,例如setup.exe,把该文件复制到一个单独文件夹; 2、在开始菜单找到QT,在里面找cmd命令行程序,类似“Qt 5.7 64-bit for Desktop (MSVC 2013)”,点击...

    windows

    1、QT切换到release模式,编译后在构建目录生成可执行文件,例如setup.exe,把该文件复制到一个单独文件夹;
    2、在开始菜单找到QT,在里面找cmd命令行程序,类似“Qt 5.7 64-bit for Desktop (MSVC 2013)”,点击运行;
    3、命令行输入:cd “setup.exe所在路径”,例如“cd C:\Users\chuwei\Desktop\release”,执行;
    4、然后使用 windeployqt 工具命令:windeployqt setup.exe,执行即可把依赖库复制到当前目录。

    linux

    1、QT在release模式下,编译出可执行文件,假如是setup,拷贝到一个新建文件夹;
    2、在该文件夹里新建两个文件:setup.sh、pack.sh;
    3、在pack.sh中添加如下内容,有两处需要替换:

    #!/bin/sh  
    exe="setup" #你需要发布的程序名称
    des="/home/chw/setup" #创建文件夹的位置
    deplist=$(ldd $exe | awk  '{if (match($3,"/")){ printf("%s "),$3 } }')  
    cp $deplist $des
    

    4、在setup.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 "$@"
    

    5、终端进入目录,执行脚本./pack.sh,依赖库会自动拷贝到当前目录。
    ps:这种方式发布时,依赖的插件库没有拷贝过来,比如qt安装目录下plugins文件夹里的platforms、sqldrivers、imageformats等文件夹,如有需要手动拷贝过来。

    linux下发布报错解决

    it could not find or load the Qt platform plugin “xcb” in “”解决:
    缺少platforms文件夹,在QT安装目录下找/opt/Qt5.10.1/5/10/1/gcc_64/plugins/platforms,把platforms文件夹拷贝到可执行文件所在文件夹;
    此时platforms文件夹已经包含了libqxcb.so,但大概率还是没解决,运行ldd libqxcb.so,提示缺少libQt5XcbQpa.so.5,在原linux系统找到该文件,该文件是个链接文件,找到原始文件,拷贝到可执行程序文件夹,然后创建一个链接,ln -s [原文件] [libQt5XcbQpa.so.5];
    此后还有可能提示缺少libQt5DBus.so.5,和上面同样的方法解决;
    遇坑ps:libQt5XcbQpa.so.5在哪找?/usr/lib/x86_64-linux-gnu和opt/Qt5.10.1/5.10.1/gcc_64/lib都有同名文件,记住要用后面Qt安装目录下,用前面系统lib目录里的怎么做都是错。

    提示找不到libQt5Core.so.5、libQt5Widgets.so.5、libQt5Gui.so.5解决:
    发布时这些文件已经拷贝到可执行文件目录,但是还会报这个错,提示查找路径是/usr/lib/x86_64-linux-gnu,而不是可执行文件所在路径;
    原因分析:运行发布版软件的ubuntu系统安装了其他版本的QT,系统lib目录自动生成的libQt5Core.so.5文件,和我们开发用的QT版本不一致,虽然文件同名,但不是软件需要的;
    解决方案:export方式把当前可执行文件路径添加到搜索动态库配置文件,参见Qt在linux环境下调用动态库

    发布后的Qt程序无法显示图片

    排除配置文件、资源图片路径等因素,尝试将QT安装目录下的plugins\imageformats文件夹复制到可执行文件同级目录,imageformats文件夹包含了许多图片格式的插件,如jpeg等,然后在main.cpp中添加以下语句:

    QApplication::addLibraryPath("./plugins");
    

    重新编译发布。
    ps:windows下没有遇到过这种问题,linux下有遇到,比较坑的是运行时不会报错,也没有提示缺少库。

    Qt应用程序图标

    准备一张图片,在线转换位ico格式,假如命名为mylogo.ico,复制到可执行文件路径,在main函数添加:

    #include <QIcon>
    QApplication::setWindowIcon(QIcon("./mylogo.ico"));
    

    该方法windows和linux通用。

    展开全文
  • LinuxQT发布程序打包

    2020-08-02 17:06:03
    参考:Linux下打包发布Qt应用程序 方法1:使用脚本打包 release生成一个可执行文件后,新建一个文件夹,把可执行文件放进去。 再新建两个脚本(你的可执行文件名).sh和pack.sh 这个文件需要修改两个属性,文件名和...

    **

    更新时间:2020-08-02

    **

    Linux下的打包方式有很多种,需要了解shell脚本的编写方式。

    参考:Linux下打包发布Qt应用程序

    方法1:使用脚本打包

    release生成一个可执行文件后,新建一个文件夹,把可执行文件放进去。
    再新建两个脚本(你的可执行文件名).sh和pack.sh

    这个文件需要修改两个属性,文件名和打包生成链接库目录
    pack.sh:

    #!/bin/sh  
    exe="ljdemo" #你需要发布的程序名称
    des="/home/good/QTdemo/ljdemo/Release/dabao" #创建文件夹的位置
    deplist=$(ldd $exe | awk  '{if (match($3,"/")){ printf("%s "),$3 } }')  
    cp $deplist $des
    
    

    可执行文件名.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 "$@"
    
    

    在这里插入图片描述

    1.先给两个.sh文件执行权限

    chmod +x pack.sh
    

    2.运行pack.sh
    生成依赖库文件

    3.运行可执行文件.sh

    大功告成!!!

    展开全文
  • QT Linux打包发布

    2019-04-25 17:13:37
    Linux: 1、用Release编译; 2、把可执行文件(如paike)放入新建目录中;...exe="paike" #发布的程序名称 destination="/home/jinzhao/paike" #exe所在的目录,结构为 /home/jinzhao/paike/pai...

    Linux:

    1、用Release编译;

    2、把可执行文件(如paike)放入新建目录中;

    3、当前目录下编写脚本copyDependency.sh,把动态链接库导入当前目录;

    #!/bin/sh
    
    
    
    exe="paike" #发布的程序名称
    
    destination="/home/paike" #exe所在的目录,结构为 /home/paike/paike
    
    
    
    dependencylist=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 } }')
    
    cp $dependencylist $destination

     

    4、运行脚本copyDependency.sh  #这个脚本运行之后就可以删除了

    • $ chmod +x copyDependency.sh

    • $ sh copyDependency.sh

    5、当前目录下编写脚本paike.sh,将这些链接库加到系统路径里;(如果不打包发布,则跳到第8步)

    #!/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 "$@"

    6、给paike.sh脚本执行权限:chmod +x paike.sh

    7、现在paike目录下就包含所有的文件,可以打包发布了。当复制到新的机器上时,运行paike.sh脚本即可。

     

    8、将paike文件夹下的动态链接库加到系统路径;

    8-1 切换到root用户,进入/etc/ld.so.conf.d目录下,新建paike.conf文件,将paike文件夹路径写入paike.conf文件中

    8-2  执行ldconfig命令,之后在paike文件夹下执行命令./paike就可以了。

    展开全文
  • 进入qt目录中的release目录,找到编译出的执行程序,然后拷到另一个空的文件夹3.在文件夹中建立一个 .sh 文件,名字随意,在里面写入#!/bin/sh exe="Reader" #发布的程序名称 des="/home/yy/Desktop/...
  • LinuxQT 程序发布

    2018-04-25 11:21:07
    为便于描述,我们这里假设生成的程序名称为test(即要发布的程序名称)1. QtCreate使用Release版本编译将release编译后生成的目录下的可执行程序(如:test)复制到一个空目录下目录自行建立:mkdir ~/Camera2.使用...
  • linux发布QT 程序

    2018-04-17 07:47:27
    QtCreate使用Release版本编译2. 从可运行程序的文件中拿出可执行文件,例:test3. 终端下使用ldd命令查看需要的连接库,例:ldd test4. 把ldd查询到的所有需要的库导出这里提供一个脚本将ldd打印出来的依赖库复制到...
  • Linux发布qt程序

    2016-12-16 14:31:30
    用ldd寻找依赖,然后复制依赖库到.../bin/sh exe="Server" #发布的程序名称 des="/home/hifumi/QTProject/myLibrary/Server_install" #你的路径 deplist=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3 }
  • QtLinux、Windows端打包发布的讲解,主要讲述:Windows端的打包,使用Qt自带的windeployqt工具处理,然后再用Enigma Virtual Box软件简化打包,只需要拷贝一个exe文件至其他电脑运行,运行成功!
  • 这个程序以QWindows为例 一、在Qt中使用release的方式编译出可执行文件 二、将可执行文件单独放置到一个新...exe="Server" #你需要发布的程序名称 des="/home/mrzhong/server" #创建文件夹的位置 deplist=$(ldd $exe |
  • LinuxQT程序打包发布

    千次阅读 2018-03-21 10:22:06
    QtCreate使用Release版本编译2. 从可运行程序的文件中拿出可执行文件,例:test3. 终端下使用ldd命令查看需要的连接库,例:ldd test4. 把ldd查询到的所有需要的库导出这里提供一个脚本loadlib.sh 将ldd打印出来的...
  • Linux平台下发布Qt程序

    2020-07-16 00:44:58
    一、编译Release版本 1、创建一个打包文件夹(eg:package) 2、编译时,改成...exe="proxy" #你需要发布的程序名称 des="/home/byzh/0521/package" #创建文件夹的位置 deplist=$(ldd $exe | awk '{if (match($3,"/
  • Linux_deepin QT5 发布程序 本次记录参考自:http://blog.csdn.net/hjl_1991/article/details/50365927 先把release中产生的执行文件复制出来到新的文件夹(本次复制到的新文件夹名称叫tongxin-release)(LinuxQT...
  • 无论是在Windows下还是Linux下编译好的QT程序基本都要提供给其他人用,那么就涉及到了发布的问题,即如何在没有编译环境的机器上运行你编译好的程序。 往往程序不能运行都是环境(缺少动态库)不对,导致不能正常...
  • Linux系统中打包发布Qt程序

    千次阅读 2019-01-22 11:17:51
    Linux系统下可以手写一个脚本文件,充分利用ldd命令进行打包。 实现 废话不说,步骤如下: QtCreator使用Release版本进行编译,并将编译后生成的可执行程序(MyApp)复制到一个空目录下。 在这个空目录下新建一个...
  • 转---LinuxQt程序的打包发布

    千次阅读 2017-05-08 14:27:27
    转载地址–LinuxQt程序的打包发布 以下是转载内容—>程序以test为例: QtCreate使用Release版本编译 从可运行程序的文件中拿出可执行文件,例:test 终端下使用ldd命令查看需要的连接库,例:ldd test 把ldd查询到...
  • 环境:QT5.4 Windows下Qt应用的发布 Qt安装路径为:C:\Qt\Qt5.4.0\5.4\mingw491_32\...执行"C:\Qt\Qt5.4.0\5.4\mingw491_32\bin\windeployqt.exe appname.exe",appname.exe就是编译得到的可执行文件 Linux下...
  • QT在Windows和Linux上打包发布

    千次阅读 2018-10-19 11:39:01
    先从cmd窗口进入所要打包发布的应用程序的目录中,本实例的目录为E:\软件\QT\qt\Win32\Release\然后在cmd命令窗口输入 windeployqt name.exe 就会把QT所需要的一些依赖全部copy到当前目录中, 但是本程序是用vs...
  • 最简单的打包宣布Qt应用 (Windows,Linux)一、打包发布Windows 版Qt应用1、把编译的应用 主法式(例如 myqtapp.exe) 复制 到 另一简单起名的文件夹,例如 c:\myapp(把利用所需的SQLite等数据库也一同放入)2、从Qt安装...
  • linuxQT项目的动态编译打包发布

    千次阅读 2019-05-30 16:31:25
    一,使用release编译项目: 但是我发现在debug模式下编译没有问题,但是在release模式下会报错: 很迷,经过尝试后我发现,把shadow build的目录改为项目相同目录,即可...exe="video_client" #你需要发布的程序名称 des="...
  • 一,如何打包发布 一般程序在ubuntu或Centos下开发完成后,需要发布给配置人员使用,往往需要把该程序的运行环境移植到配置人员使用的环境中,这就需要对开发编译后的可执行程序进行包装,让它可以在其他...exe="A...
  • linuxQT程序部署

    2020-10-30 15:23:31
    场景为提供共享文件夹(myShare)的windows宿主机,开发用的linux虚拟机dev,发布用的linux虚拟机pub。 过程为: 1. 将虚拟机dev开发的程序和依赖库复制到共享文件夹下。 2. 将共享文件夹下的程序和依赖库复制到...
  • 说明:使用Qt自带工具“windeployqt.exe”来拷贝大部分的动态库(.dll),一般有以下两种方法。 前提,将Qt编译方式选为:Release,把编译好的exe文件拷贝到一个空的文件夹下。如图: ①(简单、省事)在Qt的安装...
  • 我也是个小白,以前在win上发布Qt程序感觉很easy,Release了之后,到目录下运行exe文件,提示缺什么dll就拷贝什么dll到目录下就好了。linux上大致相同,但是还是有些许的区别的。 1.linux上Release了之后,也是缺...
  • Linux 下安装Qt 4.6

    2013-05-29 10:08:12
    Qt 4.6的发布采用跨平台的商用安装软件 BitRock installe 来安装的.它支持图形界面安装和命令行安装.在WINDOWS和LINUX界面是同样的界面.推荐用图形界面. Windows 安装程序下载  ...
  • release要发布程序b) 通过`windeployqt`打包3)方法二 — 发布成独立的可执行exe文件a) 下载工具b) 打包4)方法三 — 打包成安装包发布a)通过Inno Setup工具打包b)通过Advanced Installer工具打包3.Linux下的...
  • 准备图标 图标可以直接使用一般格式的图片制作, 比如jpg, png等 推荐使用Photoshop制作原始图 推荐使用IconWorkshop制作图标, 非常的方便 Windows和Linux的程序图标, 制作ico格式图标 MacOS制作icns格式图标 Android...

空空如也

空空如也

1 2 3
收藏数 42
精华内容 16
关键字:

linuxqt发布exe

linux 订阅