精华内容
下载资源
问答
  • Linux系统中打包发布Qt程序
    千次阅读
    2019-01-22 11:17:51

    简述

    Qt应用程序在windows下有一个自带的小程序(windeployqt)可以用来打包;Linux系统下可以手写一个脚本文件,充分利用ldd命令进行打包。

    实现

    废话不说,步骤如下:

    1. QtCreator使用Release版本进行编译,并将编译后生成的可执行程序(MyApp)复制到一个空目录下。
    2. 在这个空目录下新建一个文件(pack.sh),文件内容如下:
    #!/bin/sh
    exe="MyApp" #需发布的程序名称
    des="NewDir" #步骤一中新建目录的完整路径
    deplist=$(ldd $exe|awk '{if (match($3,"/")){printf("%s "),$3}}')
    cp $deplist $des
    
    1. 运行这个pack.sh文件(./pack.sh)即可完成打包。
    2. 为了方便部署程序,如添加环境变量、创建桌面快捷方式等,可以在此目录下新建一个sh文件,文件名必须与可执行文件名字相同。此文件内容如下:
    #!/bin/sh
    appname=`basename $0|sed s,\.sh$,,`
    dirname=`dirname $0`   #注意appname与dirname内容外面并不是单引号,而是撇号,笔者曾因此花费大量时间
    tmp="${dirname#?}"
    if[ "${dirname%$tmp}" != "/" ]; then
    dirname=$PWD/$dirname
    fi
    LD_LIBRARY_PATH=$dirname
    export LD_LIBRARY_PATH
    $dirname/$appname "$@"
    
    1. 赋予上述sh文件执行权限:
      chmod +x xxx.sh
      执行程序时运行这个sh文件即可。

    扩展

    环境变量的部署,只需要在上面第4步中的sh文件中添加命令即可;
    桌面快捷方式的实现,只需要拷贝第4步的sh文件到桌面,增加一个进入目录的语句即可;
    如果拷贝到无Qt环境的主机上运行,还需注意ldd命令没有拷贝的环境库,也就是platforms文件夹及两个链接文件。可见文章【https://blog.csdn.net/lusanshui/article/details/84988017

    更多相关内容
  • Linux下QT程序打包发布

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

    程序以test为例:

    1. QtCreate使用Release版本编译

    2. 从可运行程序的文件中拿出可执行文件,例:test

    3. 终端下使用ldd命令查看需要的连接库,例:ldd test

    4. 把ldd查询到的所有需要的库导出

    这里提供一个脚本loadlib.sh 将ldd打印出来的依赖库复制到指定路径:

    #!/bin/sh 
    exe="test" #发布的程序名称 
    des="/home/flyer/QtProject/build-test-Desktop-Release/ReleaseTest" #执行文件的路径 
    deplist=$(ldd $exe | awk  '{if (match($3,"/")){ printf("%s "),$3 } }') 
    cp $deplist $des  

    说明:exe :要发布的程序名称 des:指定so库文件复制的路径 


    5. 编写.sh文档 并将它放在与步骤4同一目录下(.sh文件命名必须与可执行文件名字一样例:可执行文件名 test, .sh 文件名为 test.sh)

    .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 "$@"  


    6. 执行这个.sh文件:

    需更给这两新编写的sh文件添加改权限:

    chmod +x loadlib.sh

    chmod +x test.sh

    执行sh

    ./loadlib.sh

    ./test.sh

    Ok!大功告成,将这个文件复制到其他电脑上就可以运行了。

    展开全文
  • linux qt 程序打包发布 1.linuxdeployqt 安装 最简单的方法直接下载编译好的 linuxdeployqt-x86_64.AppImage文件,将其改名字为linuxdeployqt,并chmod a+x,然后复制到 /usr/local/bin/。然后命令行输入 ...

    linux qt 程序打包发布

    1.linuxdeployqt 安装

    最简单的方法直接下载编译好的 linuxdeployqt-x86_64.AppImage文件,将其改名字为linuxdeployqt,并chmod a+x,然后复制到 /usr/local/bin/。然后命令行输入 linuxdelpoyqt –version,输出linuxdeployqt 版本就安装成功。
    linuxdeployqt-x86_64.AppImage 下载地址,https://github.com/probonopd/linuxdeployqt/releases
    这里写图片描述
    点击linuxdeployqt-x86_64.AppImage右键下载即可。

    $ mv linuxdeployqt-x86_64.AppImage linuxdeployqt
    $ mv ./linuxdeployqt /usr/local/bin
    $ linuxdelpoyqt --version
    linuxdeployqt 4 (commit 988d294), build 481 built on 2018-02-02 15:05:23 UTC

    2.打包自己的程序

    将自己的qt程序(如myQtApp)复制到一个目录(如 qtTest),运行
    
     $ linuxdeployqt ./myQtApp -appimage

    3.在ubuntu 中添加qt 应用程序图标

    修改qt 目录下的desktop 文件。可以按照ubuntu 官方提示修改。
    ubuntu desktop文件使用

    #-- 全局安装(所有用户可用),将xxx.desktop 复制到/usr/share/applications  
    #-- 当前用户可用, 将xxx.desktop 复制到 ~/.local/share/applications 目录即可
    #--appName.desktop
    [Desktop Entry]
    Version=1.0 #app的版本
    Name=myQtApp #app的名字
    Comment= this app use for xxx #说明信息 
    Exec=/path/to/your/QtApp/myQtApp #app的执行路径,绝对路径
    Icon=/path/to/your/app_icon/myQtApp.png #icon 路径,绝对路径
    Terminal=false #是否在终端启动,效果自己试一下就知道了
    Type=Application
    Categories=Utility;Application;

    4、关于qt.conf

    这个文件指定了qt 程序的运行环境。
    引用qt说明的原话:
    The qt.conf file can be used to override the hard-coded paths that are compiled into the Qt library. These paths are accessible using the QLibraryInfo class. Without qt.conf, the functions in QLibraryInfo return these hard-coded paths; otherwise they return the paths as specified in qt.conf.
    即我们可以使用qt.conf 指定qt程序的运行路径和库路径。
    The file should have a Paths group which contains the entries that correspond to each value of the QLibraryInfo::LibraryLocation enum. See the QLibraryInfo documentation for details on the meaning of the various locations.
    这个文件应该要包含QLibraryInfo::LibraryLocation enum,如以下内容

    EntryDefault Value
    Prefix程序运行的路径,一下所有的路劲都是相对于这个路径
    Libraries程序的库库路劲,linuxdeployqt会自动再这个目录生成./lib,并将需要的库拷贝过来

    主要有这几个,多余的可以上qt帮助文档

    # Generated by linuxdeployqt
    # https://github.com/probonopd/linuxdeployqt/
    [Paths]
    Prefix = ./         #程序的运行路劲
    Libraries =  ./lib  #程序的库路径
    Plugins = ./plugins #插件路径

    参考:http://doc.qt.io/qt-5/qt-conf.html

    5.补充

    虽然linuxdepoyqt可以帮我们解决多数情况下库的依赖问题,但是也有的时候不能完整解决。这个时候就需要我们自己复制所依赖的库。
    提供一个脚本,复制依赖库,复制以下代码,将其保存成为 copylib.sh

    #!/bin/sh
    bin=$1         #发布的程序名称  
    
    desDir="./lib" #你的路径  
    
    if [ ! -d $desDir ];then
          #echo "makedir $desDir"
          mkdir $desDir
    fi 
    libList=$(ldd $bin | awk  '{if (match($3,"/")){ printf("%s "),$3 } }')
    cp $libList $desDir

    命令行 运行

    chmod a+x ./copylib.sh
    ./copylib.sh ./myapp

    就可以复制所需要的库到当前目录下的 ./lib 文件夹中
    通常情况下,结合linuxdelpoy 和 copylib.sh 可以解决Linux 下 qt 程序的库依赖问题

    展开全文
  • Linux下打包发布Qt应用程序

    万次阅读 多人点赞 2018-10-27 12:46:42
    Linux下打包发布Qt应用程序Linux下打包发布Qt应用程序1. 编译文件2.巧用脚本文件新建文件添加脚本执行脚本打包发布 Linux下打包发布Qt应用程序 Linux下使用Qt进行开发的程序,如果想要在其他搭载Linux系统的主机上...

    Linux下打包发布Qt应用程序

    Linux下使用Qt进行开发的程序,如果想要在其他搭载Linux系统的主机上运行则需要将要发布的Qt程序依赖的一些动态链接库一起打包。具体做法如下:

    1. 编译文件

    在Qt中使用release的方式编译出可执行文件,然后新建一个文件夹,将可执行文件拷贝进去备用。

    2.巧用脚本文件

    这里以Server可执行文件为例。
    在新建的文件夹下,新建两个脚本文件:

    新建文件

    1. pack.sh
    2. Server.sh 这个脚本文件名必须和要发布的程序名字相同,所以为 Server
      新建文件后,文件夹包含内容如下:
      文件夹内容

    添加脚本

    pack.sh文件里添加以下内容:

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

    然后向Server.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 "$@"
    

    执行脚本

    终端进入文件夹目录,运行:

    ./pack.sh
    

    可执行文件依赖的链接库将会拷贝到所在的目录,如图:
    alt
    在其他主机里面使用和可执行文件同名的脚本文件(这里为Server.sh)运行程序即可。

    打包发布

    最后将这个文件打包后拷贝到其他主机上即可运行。

    展开全文
  • Linux与Qt程序设计 高清PDF 第一部分

    热门讨论 2015-12-08 18:17:15
    名称:《Linux与Qt程序设计 (陈爽) 高清PDF》 包含Linux的概述 常用的命令 Linux系统的配置和安装,涵盖QT基础知识以及QT高级开发,对于初学者或中高级学者都适用。本书对qt开发者带来很大的帮助。
  • 如何将Python程序打包成linux可执行文件方法1.安装环境2.打包程序3.执行文件 方法 前段时间尝试使用Python的tkinter制作了一个简单的丑丑的的图形化界面,现在想把它打包成Linux可执行文件,具体步骤如下: 1.安装...
  • 正在下载程序包“C/C++ language components (Linux / x86_64)” 失败。正在重试... 失败。正在重试... 失败。正在重试...正在等待 8 秒... 失败。正在重试...正在等待 16 秒... 未能下载 ...
  • linux环境打包python工程为可执行程序

    万次阅读 多人点赞 2019-03-14 15:36:21
    本次又个需求,在ubuntu上面开发的python代码程序需要打包成一个可执行程序然后交付给甲方,因为不能直接给源码给甲方,所以寻找方法将python开发的源码打包成一个可执行程序,注意是打包成在ubuntu上面的可执行程序...
  • linux程序打包deb

    千次阅读 2018-02-07 10:12:35
    deb是Unix系统(其实主要是Linux)下的安装包,基于 tar ,因此本身会记录文件的权限(读/写/可执行)以及所有者/用户组。 由于 Unix 类系统对权限、所有者、组的严格要求,而 deb 格式安装包又经常会涉及到系统比较...
  • Linux: 将Java程序打包为jar及运行

    千次阅读 2020-08-17 10:39:05
    1 前提介绍 前提介绍: 以helloWorld.java为例来说明,它的代码如下: public class helloWorld{ public static void main(String[] args){ System.out.println("Hello, ...2 打包Java程序 2.1 直接打包 创建MANIFE
  • Linux中离线安装R语言程序包

    千次阅读 2019-04-30 14:32:15
    问题描述 R是属于GNU系统的一个...在能连接到互联网的环境下,我们可以使用install.packages("xx")命令轻松下载R程序包并加载,但如果无法连接到互联网(如军工专网、虚拟机等),我们用什么方式来安装R程序包呢? ...
  • Linux 通过yum下载rpm

    千次阅读 2019-03-26 14:11:56
    1、解决方式:在能联网外网的linux服务器上通过yum下载指定的rpm程序包,并将其依赖对应版本的其他包也一起下载下来,再上传到不能上外网的服务器上进行安装 2、上centos网站或其他镜像资源网...
  • 程序依赖的所有库文件拷贝出来 ldd helloworld | awk '{print $3}' | xargs -i cp -L {} /home/zz/lib helloworld是可执行程序名称,/home/zz/lib是拷贝依赖库的目标文件夹 如果需要有选择的拷贝,则可以加入...
  • linux Qt程序打包(linuxdeployqt工具的使用)官方提供的最新版本基于Qt5.8的,用户可根据需要从源码编译成本机版本来使用,具体操作过程如下:工具1.linuxdeployqt 依赖工具: patchelf(必须) appimagetool(可选) 2....
  • Linux 下如何打包免安装的QT程序

    万次阅读 多人点赞 2017-03-22 17:12:03
    如题,近期因为项目需求,得打包QT程序,并将程序放到没有安装QT库的电脑上运行。网上索罗了下,打包QT程序的方式很多,主要分为以下几种: 1. 打包成安装包形式; 2. 打包成二进制文件,附带运行库的形式: - ...
  • Linux下使用pyinstaller打包python程序

    万次阅读 2018-09-30 15:04:52
    下载pyinstaller 使用pip3下载源码: pip3 download pyinstaller (注意下载的位置,使用pwd命令查看) 也可以使用第三方下载,直接下载到指定的目录:...
  • Linux下使用appimage打包程序

    千次阅读 2019-03-30 14:07:58
    首先需要下载打包的工具,打包工具是以下两种: 1.linuxdeployqt 下载地址:https://github.com/probonopd/linuxdeployqt/releases a.下载下图所标记的工具: b.配置linuxdeployqt,命令行输入以下指令: ...
  • Linux Qt程序打包成一个可执行文件

    万次阅读 2017-06-20 11:38:02
    最近用Qt写了一个上位机, 而且是跨平台(Windows, Linux, ARM-Linux), 开发完成后需要对程序进行打包, windows的打包非常容易,选择非常多, 但是linux下面的选择就少了些. 方案的选择 Qt官方有页面专门说明Linux X11的...
  • Linux下最常用的打包程序用法总结

    千次阅读 2017-03-26 17:01:15
    Linux下最常用的打包程序就是tar了,使用tar程序打出来的我们常称为tar,tar文件的命令通常都是以.tar结尾的。生成tar后,就可以用其它的程序来进  行压缩了,所以首先就来讲讲tar命令的基本用法:   ...
  • tar -cvf script.tar script sz script.tar 文件夹先要打包,并且要指定...一般来说,linux服务器大多是通过ssh来进行远程的登陆和管理的,如何在命令方式下上传和下载文件到服务器和本地呢? 与ssh有关的两个命令...
  • electron打包的程序linux上运行

    千次阅读 2020-09-11 16:20:09
    第一步,打包 配置如下 具体操作,可百度实现,这一步详细步骤很多,这里就不详细说明了 "scripts": { "start": "electron .", "package:win": "electron-packager . --overwrite --platform=win... "package:linux
  • 文章目录Linux 环境下 Qt 可执行程序依赖库打包脚本一、利用 ldd 命令查看程序需要的依赖库二、编写依赖库打包脚本三、总结 Linux 环境下 Qt 可执行程序依赖库打包脚本 使用 Qt Creator 完成程序编码之后,虽然会在...
  • Linux环境Tomcat下部署jar、war包程序

    千次阅读 2019-03-23 12:39:53
    一、部署war包程序 1. 查看之前启动的程序,关闭之 ps -ef|grep java kill -9 xxx 2. 启动程序 nohup java -jar XXX.jar >top.out & 二、部署war包程序 1. 将war放在webapps目录下 2. 重启...
  • release要发布程序b) 通过`windeployqt`打包3)方法二 -- 发布成独立的可执行exe文件a) 下载工具b) 打包4)方法三 -- 打包成安装包发布a)通过Inno Setup工具打包b)通过Advanced Installer工具打包3.Linux下的...
  • Python项目打包部署Linux服务上

    千次阅读 2020-11-22 17:47:13
    项目可打包成可执行的exe程序,或者打包成通过命令安装启动的安装包。其中打包成可执行文件工具用的最多的是pyinstaller,该工具支持windows和linux。而打包成安装包可以是setuptools来安装,或者使用buildout进行...
  • 需求:将本地Java程序部署到linux服务器并执行,首先要将本地Java程序打成jar,然后拷贝到服务器后运行java -jar xx.jar 问题:该程序本地运行正常,服务端运行报错找不到第三方包中的类 原因:本地打jar时有...
  • linux 下快速打包程序依赖库的命令

    千次阅读 2019-01-10 10:35:11
    ldd "程序名" | awk '{print $3' | xargs -i cp -L {} "要拷贝到的目录" eg: ldd iprobe | awk '{sprint $3}' | xargs -i cp -L {} /home/iprobe_lib/
  • python打包运行在Linux

    千次阅读 2019-10-09 16:21:01
    工具在window下可以打为exe,在Linux下可以打为执行程序 # 安装PyInstaller: pip install pyinstaller # 进入程序目录,用以下命令执行你的python文件 # 会生成dist目录 pyinstaller yourprogram.py # 进入dist下...
  • linux下载安装命令

    千次阅读 2020-06-01 09:04:04
    Linux服务器下载文件夹到本地 1.1 使用scp命令 scp /home/work/source.txt work@192.168.0.10:/home/work/ #把本地的source.txt文件拷贝到192.168.0.10机器上的/home/work目录下 scp work@192.168.0.10:/home/work...
  • 【Java】Java程序打包成jarLinux上运行

    万次阅读 多人点赞 2015-01-06 21:29:39
    当需要把在Windows上开发的Java程序用在Linux上运行时,就需要吧该Java程序打包成jar上传到Linux上去运行。 1.Java程序打包成可运行的jar 2.打包后的jarLinux上运行

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,062,191
精华内容 424,876
关键字:

linux在线下载程序包

友情链接: copd.zip