Qt打包:
阶段一
右键可执行程序,选择属性,可执行程序类型如果是“application/x-sharedlib”,在QT的pro文件添加如下内容,清除后重新编译release版;
QMAKE_LFLAGS += -no-pie
此时的可执行程序是“x-executable”,双击看能否启动。
阶段二
经过阶段一如果还是打不开,此时可以写个小demo,新建一个带界面的工程,什么都不做,编译后看是否能双击打开,如果能打开,但复杂一点的工程打不开,说明是环境问题;
原因分析
双击在图形界面,环境是文件管理器,使用./是在命令行界面,也就是shell脚本,shell启动时会执行一些脚本,改变环境变量;复杂工程如果依赖三方库,直接双击可执行是打不开的。
解决方法
修改全局环境变量,把可执行程序当前路径加到如下配置文件(依赖库一般和可执行程序在同级目录):
命令:sudo vim /etc/ld.so.conf
将第三方库放到和可执行文件一个目录中,并进行如下操作:
打开 /etc/profile文件:
gedit /etc/profile
在文件的末尾添加语句:
执行下面指令,使设置立即生效:
sudo ldconfig
再双击可执行程序,正常可以打开。
阶段三
项目工程太大再加上电脑上有其他软件修改环境变量,经历这些操作可能还是不能双击打开,下面介绍通过shell脚本双击启动,在用户看来形式上一样。
1、编辑一个shell脚本,例如是startApp.sh,放在可执行文件目录,内容如下:
#!/bin/bash
#workdir
workdir=$(cd $(dirname $0); pwd)
cd $workdir
./AssistantMainInterface
此时可以在终端./startApp.sh运行程序了,但双击还是打不开。
2、设置shell脚本双击可打开
打开文件管理器-编辑-首选项-行为,勾选“打开可执行文本文件时运行它们”;
右键startApp.sh,选择权限选项卡,勾选允许作为程序执行文件,此时双击“startApp.sh”可直接执行程序;
3、创建桌面快捷方式
为了看上去更像一个程序,创建一个带图标的桌面快捷方式;
在桌面创建文件/root//Desktop/zhushou.desktop,编辑vim zhushou.desktop:
[Desktop Entry]
Encoding=UTF-8
Name=ZhuShou
Comment=tool
#Exec=/root/IPDSys/bin/config/shell/shell_410/rzt_tool_start.sh
Exec=/root/桌面/app1/startApp.sh
Icon=/root/桌面/app1/app.png
Terminal=false
StartupNotify=true
Type=Application
Name[zh_CN]=ZhuShou